frame work ho tro cac hinh thuc trac nghiem
TRANSCRIPT
1
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM
SINH VIÊN THỰC HIỆN MAI HẢI THANH 0112113 ĐÀO PHƯƠNG THÚY 0112448
TÌM HIỂU VÀ XÂY DỰNG HỆ THỐNG FRAMEWORK HỖ TRỢ CÁC HÌNH THỨC
TRẮC NGHIỆM
LUẬN VĂN CỬ NHÂN TIN HỌC
Tp.HCM, 2005
1
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM
SINH VIÊN THỰC HIỆN MAI HẢI THANH 0112113 ĐÀO PHƯƠNG THÚY 0112448
TÌM HIỂU VÀ XÂY DỰNG HỆ THỐNG FRAMEWORK HỖ TRỢ CÁC HÌNH THỨC
TRẮC NGHIỆM
GIẢNG VIÊN HƯỚNG DẪN ThS. TRẦN MINH TRIẾT ThS. NGUYỄN TẤN TRẦN MINH KHANG
Tp.HCM, 2005
2
LỜI CÁM ƠN
Chúng em xin chân thành cám ơn Khoa Công Nghệ Thông Tin, trường
Đại Học Khoa Học Tự Nhiên TpHCM đã tạo điều kiện tốt cho chúng em thực
hiện đề tài luận văn tốt nghiệp này.
Chúng em xin chân thành cám ơn Thầy Trần Minh Triết và Thầy Nguyễn Tấn
Trần Minh Khang đã tận tình hướng dẫn, chỉ bảo chúng em trong suốt thời
gian thực hiện đề tài.
Chúng em xin chân thành cám ơn quý Thầy Cô trong Khoa đã tận tình giảng
dạy, trang bị cho chúng em những kiến thức quý báu trong những năm học
vừa qua.
Chúng con xin nói lên lòng biết ơn sâu sắc đối với Ông Bà, Cha Mẹ đã chăm
sóc, nuôi dạy chúng con thành người.
Xin chân thành cám ơn các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viên
chúng em trong thời gian học tập và nghiên cứu.
Mặc dù chúng em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng
cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Chúng em
kính mong nhận được sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và
các bạn.
Sinh viên thực hiện,
Mai Hải Thanh & Đào Phương Thúy
07/2005
i
MỤC LỤC
Trang
MỤC LỤC ...................................................................................................... i
DANH SÁCH CÁC HÌNH...............................................................................v
DANH SÁCH CÁC BẢNG............................................................................ ix
Chương 1 Tổng quan....................................................................................1
1.1 Xu hướng chung...........................................................................................1
1.2 Hình thức thi trắc nghiệm............................................................................2
1.3 Lý do và mục tiêu của đề tài ........................................................................3
1.4 Cấu trúc của báo cáo: .................................................................................3
Chương 2 Chuẩn, chuẩn trắc nghiệm và đặc tả IMSQTI .......................5
2.1 Chuẩn và chuẩn trắc nghiệm.......................................................................5 2.1.1 Giới thiệu chung..................................................................................5 2.1.2 Tổ chức IMS .......................................................................................6
2.2 Đặc tả IMSQTI (Question and Test Interoperability) ...............................11 2.2.1 Lịch sử các phiên bản:.......................................................................11 2.2.2 Mục đích thiết kế...............................................................................11 2.2.3 Cấu trúc tổ chức bài thi và câu hỏi....................................................13
Chương 3 Phân loại câu hỏi trắc nghiệm .................................................15
3.1 Sơ đồ lớp interaction .................................................................................15 3.1.1 interaction..........................................................................................15 3.1.2 inlineInteraction ................................................................................15 3.1.3 blockInteraction.................................................................................16
3.2 Sơ đồ lớp choice.........................................................................................16
3.3 Các loại câu hỏi phân loại theo interaction ..............................................17 3.3.1 choiceInteraction ...............................................................................17 3.3.2 orderInteraction .................................................................................18 3.3.3 associateInteraction ...........................................................................18 3.3.4 matchInteraction................................................................................19 3.3.5 gapMatchInteraction .........................................................................19 3.3.6 inlineChoiceInteraction .....................................................................20 3.3.7 textEntryInteraction...........................................................................20 3.3.8 extendedTextInteraction....................................................................21 3.3.9 hottextInteraction ..............................................................................21
ii
3.3.10 hotspotInteraction..............................................................................22 3.3.11 selectPointInteraction........................................................................23 3.3.12 graphicOrderInteraction ....................................................................24 3.3.13 graphicAssociateInteraction..............................................................25 3.3.14 graphicGapMatchInteraction.............................................................26 3.3.15 positionObjectInteraction..................................................................26 3.3.16 sliderInteraction.................................................................................27 3.3.17 drawingInteraction ............................................................................27 3.3.18 uploadInteraction...............................................................................27 3.3.19 customInteraction..............................................................................27
Chương 4 Kiến trúc chung của phần mềm ..............................................28
4.1 Phát biểu bài toán: ....................................................................................28
4.2 Mô hình kiến trúc và tổ chức hoạt động ....................................................30 4.2.1 Engine ...............................................................................................30 4.2.2 ETSONLINE.....................................................................................36 4.2.3 ETSClient..........................................................................................45 4.2.4 InteractionDefinition .........................................................................49 4.2.5 ImportExportEngine..........................................................................50 4.2.6 QuestionsPlugins...............................................................................50 4.2.7 UserInterfacePlugins .........................................................................50 4.2.8 ETSPluginService .............................................................................50 4.2.9 HelpCenter ........................................................................................51
4.3 Thiết kế dữ liệu ..........................................................................................53 4.3.1 Lược đồ các bảng dữ liệu ..................................................................53 4.3.2 Danh sách và chức năng các bảng dữ liệu ........................................53
Chương 5 Module quản lý .........................................................................55
5.1 Đặc tả yêu cầu chức năng của module quản lý .........................................55
5.2 Mô hình Use-Case .....................................................................................56 5.2.1 Lược đồ chính của mô hình Use-Case ..............................................56 5.2.2 Đặc tả một số Use-Case chính ..........................................................58
5.3 Các lược đồ tuần tự chính .........................................................................64 5.3.1 Lược đồ tuần tự “CreateFolder”:.......................................................64 5.3.2 Lược đồ tuần tự “ChangeRole”:........................................................65 5.3.3 Lược đồ tuần tự “CreateMember”: ...................................................65 5.3.4 Lược đồ tuần tự “UpdateDataFromWin”:.........................................66 5.3.5 Lược đồ tuần tự “ExportToMSWord”: .............................................66
5.4 Các màn hình giao diện chính và hướng dẫn sử dụng ..............................67 5.4.1 Chức năng quản lý câu hỏi ................................................................67 5.4.2 Chức năng quản lý đề thi...................................................................69 5.4.3 Chức năng quản lý thành viên...........................................................71 5.4.4 Chức năng quản lý ngân hàng câu hỏi, ngân hàng đề thi..................75
iii
Chương 6 Module soạn thảo......................................................................78
6.1 Đặc tả yêu cầu chức năng của module soạn thảo .....................................78
6.2 Mô hình Use-Case .....................................................................................78 6.2.1 Lược đồ chính của mô hình Use-Case ..............................................78 6.2.2 Đặc tả một số Use-Case chính ..........................................................79
6.3 Các lược đồ tuần tự chính .........................................................................86 6.3.1 Lược đồ tuần tự “CreateQuestion”....................................................86 6.3.2 Lược đồ tuần tự “ImportQuestionFromMSWord”............................87
6.4 Các màn hình giao diện chính và hướng dẫn sử dụng ..............................87 6.4.1 Chức năng “Soạn thảo nội dung câu hỏi” .........................................87 6.4.2 Chức năng “Import danh sách câu hỏi từ MS Word” .......................91 6.4.3 Chức năng “Soạn thảo thông tin section” .........................................92 6.4.4 Chức năng “Biên tập nội dung section” ............................................94 6.4.5 Chức năng “Soạn thảo thông tin đề thi”............................................97 6.4.6 Chức năng “Biên tập nội dung đề thi” ..............................................99
Chương 7 Module plugin .........................................................................101
7.1 Mục đích và vị trí của plugin trong hệ thống ..........................................101
7.2 Tổ chức một bộ plugin câu hỏi ................................................................102
7.3 Plugin template đề thi ..............................................................................104 7.3.1 Các bước để tạo một template.........................................................104 7.3.2 Hình ảnh giao diện: .........................................................................105
7.4 Plugin thành phần giao diện....................................................................108
Chương 8 Module tổ chức thi cử.............................................................111
8.1 Đặc tả yêu cầu chức năng của module tổ chức thi cử .............................111
8.2 Mô hình Use-Case ...................................................................................111 8.2.1 Lược đồ chính của mô hình Use-Case ............................................111 8.2.2 Đặc tả một số Use-Case chính ........................................................112
8.3 Các lược đồ tuần tự chính .......................................................................117 8.3.1 Lược đồ tuần tự “DoTest”...............................................................117 8.3.2 Lược đồ tuần tự “RequestResult” ...................................................118 8.3.3 Lược đồ tuần tự “ViewMemberResults”.........................................118
8.4 Giao diện và hướng dẫn sử dụng.............................................................118 8.4.1 Sơ đồ màn hình giao diện................................................................118 8.4.2 Chức năng thi ..................................................................................118 8.4.3 Chức năng tra cứu danh sách thí sinh và kết quả bài thi .................119
Chương 9 Các kỹ thuật bổ sung..............................................................122
9.1 Kỹ thuật thiết kế web application linh động và load động user control ..122
9.2 Kỹ thuật automation Microsoft Word ......................................................124
iv
9.2.1 Giới thiệu.........................................................................................124 9.2.2 Các đối tượng trong MS Word........................................................124 9.2.3 Ngôn ngữ VBA (Microsoft Visual Basic for Applications) ...........125 9.2.4 Ứng dụng trong hệ thống ................................................................128
Chương 10 Tổng kết ...................................................................................132
10.1 Kết luận....................................................................................................132
10.2 Hướng phát triển......................................................................................132
Phuï luïc A - Export database theo đặc tả IMSQTI ..................................133
Phuï luïc B - Phần lưu trữ XML của một số dạng câu hỏi trong đặc tả IMSQTI ..................................................................................................135
TÀI LIỆU THAM KHẢO ...........................................................................138
v
DANH SÁCH CÁC HÌNH Hình 1-1 Logo ETS................................................................................................................1
Hình 1-2 Logo ETS-TOEFL..................................................................................................1
Hình 1-3 Logo MCAD - Microsoft........................................................................................1
Hình 1-4 Logo MCDBA - Microsoft .....................................................................................1
Hình 2-1 Logo tổ chức IMS...................................................................................................6
Hình 2-2 Vai trò của các thành phần tham gia hệ thống sử dụng đặc tả IMSQTI...............12
Hình 2-3 Cấu trúc bài thi trong đặc tả IMSQTI...................................................................13
Hình 3-1 Sơ đồ lớp interaction ............................................................................................15
Hình 3-2 Sơ đồ lớp inlineInteraction ...................................................................................15
Hình 3-3 Sơ đồ lớp blockInteraction ...................................................................................16
Hình 3-4 Sơ đồ lớp choice ...................................................................................................16
Hình 3-5 Câu hỏi choiceInteraction với 1 lựa chọn đúng....................................................17
Hình 3-6 Câu hỏi choiceInteraction với nhiều lựa chọn đúng.............................................17
Hình 3-7 Câu hỏi orderInteraction.......................................................................................18
Hình 3-8 Câu hỏi associateInteraction.................................................................................18
Hình 3-9 Câu hỏi matchInteraction .....................................................................................19
Hình 3-10 Câu hỏi gapMatchInteraction .............................................................................19
Hình 3-11 Câu hỏi inlineChoiceInteraction.........................................................................20
Hình 3-12 Câu hỏi loại textEntryInteraction .......................................................................20
Hình 3-13 Câu hỏi extendedTextInteraction .......................................................................21
Hình 3-14 Câu hỏi hottextInteraction ..................................................................................21
Hình 3-15 Câu hỏi hotspotInteraction .................................................................................22
Hình 3-16 Câu hỏi selectPointInteraction............................................................................23
Hình 3-17 Câu hỏi graphicOrderInteraction........................................................................24
Hình 3-18 Câu hỏi graphicAssociateInteraction..................................................................25
Hình 3-19 Câu hỏi graphicGapMatchInteraction ................................................................26
Hình 3-20 Câu hỏi positionObjectInteraction......................................................................26
Hình 3-21 Câu hỏi sliderInteraction ....................................................................................27
Hình 4-1 Mô hình kiến trúc và tổ chức................................................................................30
Hình 4-2 Mối quan hệ giữa Engine và các component khác ...............................................31
Hình 4-3 Sơ đồ tổ chức của Engine .....................................................................................32
vi
Hình 4-4 Sơ đồ lớp phần ETSEngineBasicObject của Engine............................................33
Hình 4-5 Sơ đồ lớp phần IMSQTIBasicObject của Engine.................................................34
Hình 4-6 Sơ đồ lớp phần ETSEngineControllerObject của Engine ....................................34
Hình 4-7 Sơ đồ lớp phần ETSEngineDBManager...............................................................35
Hình 4-8 Sơ đồ tổ chức ứng dụng ETSONLINE.................................................................36
Hình 4-9 Sơ đồ tổ chức lớp trong ETSONLINE .................................................................37
Hình 4-10 Trang chủ ETSONLINE.....................................................................................38
Hình 4-11 Phân cấp quản lý theo cấu trúc cây ....................................................................39
Hình 4-12 Trang quản lý chính của ETSONLINE ..............................................................39
Hình 4-13 Demo chức năng soạn thảo câu hỏi ....................................................................40
Hình 4-14 Kết quả bài thi được truyền đi bằng XML .........................................................41
Hình 4-15 Sơ đồ tổ chức ứng dụng ETSClient....................................................................46
Hình 4-16 Sơ đồ tổ chức lớp trong ETSClient ....................................................................47
Hình 4-17 Sơ đồ tổ chức InteractionDefinition ...................................................................49
Hình 4-18 Sơ đồ tổ chức lớp trong InteractionDefinition....................................................49
Hình 4-19 Sơ đồ tổ chức HelpCenter ..................................................................................51
Hình 4-20 HelpCenterMenu ................................................................................................51
Hình 4-21 Liên hệ tác giả ....................................................................................................52
Hình 4-22 Hướng dẫn sử dụng ETSONLINE .....................................................................52
Hình 4-23 Sơ đồ các bảng dữ liệu .......................................................................................53
Hình 4-24 Danh sách các bảng dữ liệu ................................................................................54
Hình 5-1 Mô hình Use-Case module quản lý ......................................................................56
Hình 5-2 Quản lý danh sách câu hỏi trên web.....................................................................67
Hình 5-3 Xem thông tin thống kê của câu hỏi .....................................................................68
Hình 5-4 Quản lý danh sách câu hỏi trên windows .............................................................68
Hình 5-5 Quản lý danh sách bài thi trên web ......................................................................69
Hình 5-6 Kết xuất đề thi ra file Word..................................................................................70
Hình 5-7 Xem thông tin thống kê bài thi .............................................................................71
Hình 5-8 Quản lý danh sách thành viên trên web................................................................72
Hình 5-9 Xem hồ sơ thành viên...........................................................................................72
Hình 5-10 Import danh sách sinh viên từ file Excel ............................................................73
Hình 5-11 Di chuyển thành viên đang được chọn ...............................................................73
vii
Hình 5-12 Xem thông tin thống kê về tình hình trả lời câu hỏi của sinh viên.....................74
Hình 5-13 Quản lý danh sách thành viên trên windows ......................................................75
Hình 5-14 Quản lý kho câu hỏi, kho bài thi, thành viên, cấu trúc section...........................76
Hình 5-15 Cấu trúc lại quan hệ giữa các thư mục ...............................................................76
Hình 5-16 Các chức năng đối với thư mục trên windows ...................................................77
Hình 6-1 Sơ đồ Use-Case module soạn thảo .......................................................................78
Hình 6-2 Chọn loại câu hỏi trên web...................................................................................87
Hình 6-3 Soạn thảo nội dung một câu hỏi ...........................................................................88
Hình 6-4 Menu tạo câu hỏi trên windows............................................................................89
Hình 6-5 Context Menu tạo câu hỏi trên windows..............................................................89
Hình 6-6 Danh sách các loại câu hỏi trong ứng dụng trên windows ...................................90
Hình 6-7 Import danh sách câu hỏi từ MS Word ................................................................91
Hình 6-8 Soạn thảo một section trên web............................................................................92
Hình 6-9 Soạn section trên windows ...................................................................................93
Hình 6-10 Chọn trực tiếp câu hỏi cho section trên web ......................................................94
Hình 6-11 Chọn trực tiếp câu hỏi cho section trên windows...............................................95
Hình 6-12 Chọn kho câu hỏi cho section trên windows ......................................................96
Hình 6-13 Soạn thảo đề thi trên web ...................................................................................97
Hình 6-14 Soạn thảo đề thi trên windows............................................................................98
Hình 6-15 Chọn section cho bài thi trên web ......................................................................99
Hình 6-16 Chọn section cho bài thi trên windows.............................................................100
Hình 7-1 Minh họa plugin .................................................................................................101
Hình 7-2 Tổ chức 1 bộ câu hỏi ..........................................................................................103
Hình 7-3 Template mặc định của bài thi............................................................................105
Hình 7-4 Template smoke skin..........................................................................................106
Hình 7-5 Template wave skin............................................................................................107
Hình 7-6 Chỉnh sửa cấu hình giao diện .............................................................................108
Hình 7-7 Plugin cột trái .....................................................................................................109
Hình 7-8 Plugin cột phải ....................................................................................................109
Hình 7-9 Các plugin hiển thị theo lựa chọn của người dùng.............................................110
Hình 8-1 Sơ đồ Use-Case module thi cử ...........................................................................111
Hình 8-2 Sơ đồ các màn hình giao diện module thi cử .....................................................118
viii
Hình 8-3 Hình ảnh một bài thi ...........................................................................................119
Hình 8-4 Danh sách thí sinh đã thi ....................................................................................120
Hình 8-5 Kết quả thi một bài thi nào đó của các thí sinh ..................................................120
Hình 8-6 Thông tin thống kê tình hình điểm số của một bài thi........................................121
Hình 9-1 Sơ đồ quan hệ của các đối tượng của MS Word ................................................124
Hình 9-2 Record macro trong MS Word ...........................................................................126
Hình 9-3 Edit macro trong MS Word ................................................................................127
Hình 9-4 Kết quả edit macro trong MS Word ...................................................................127
Hình 9-5 Add reference đến Word Object Library trong .NET.........................................128
ix
DANH SÁCH CÁC BẢNG Bảng 2-1 Các đặc tả được tổ chức IMS định nghĩa ...............................................................8
Bảng 5-1 Danh sách actor module quản lý ..........................................................................57
Bảng 5-2 Danh sách Use-Case module quản lý...................................................................58
Bảng 6-1 Danh sách actor module soạn thảo.......................................................................79
Bảng 6-2 Danh sách Use-Case module soạn thảo ...............................................................79
Bảng 8-1 Danh sách actor module thi cử...........................................................................112
Bảng 8-2 Danh sách Use-Case module thi cử ...................................................................112
1
Chương 1 Tổng quan
1.1 Xu hướng chung
Ngày nay, hình thức thi trắc nghiệm đã trở thành một trong những hình thức
thi phổ biến nhất trên thế giới. Với ưu điểm khách quan, chính xác và thuận tiện cho
cả người ra đề và thí sinh đi thi, hình thức thi này đã được áp dụng ở hầu khắp các
nước, đặc biệt là trong các kỳ thi của các tổ chức lớn có phạm vi toàn cầu như ETS
(Educational Testing Service) – tổ chức các kỳ thi TOEFL, GMAT, GRE…,
Microsoft – tổ chức các kỳ thi MCSE, MCAD…
Hình 1-1 Logo ETS
Hình 1-2 Logo ETS-TOEFL
Hình 1-3 Logo MCAD - Microsoft
Hình 1-4 Logo MCDBA - Microsoft
2
Tại Việt Nam, trong những năm gần đây, song song với việc đổi mới phương
pháp dạy và học, việc đổi mới hình thức thi cử cũng trở thành một việc làm cấp
thiết. Trong các hình thức thi cử, trắc nghiệm khách quan là hình thức được nhiều
người chú ý nhất do những ưu điểm của nó trong việc kiểm tra, đánh giá trình độ
người dự thi như: khách quan, trung thực, kiểm tra được nhiều kiến thức, tránh
được việc học tủ, học vẹt…Do đó, trắc nghiệm đang là khuynh hướng của hầu hết
các kỳ thi ở Việt Nam hiện nay.
1.2 Hình thức thi trắc nghiệm
Hình thức của thi trắc nghiệm rất đa dạng, ví dụ: một câu hỏi có một số
phương án trả lời, thí sinh chọn câu trả lời đúng nhất, hay một câu hỏi có nhiều
phương án trả lời và thí sinh chọn các câu trả lời đúng.
Tuy nhiên, do độ phổ biến của một số cách thể hiện cũng như về bản chất nội
dung, trắc nghiệm thường được hiểu theo một phạm vi hẹp hơn, cụ thể: đó là một
hay nhiều bài kiểm tra, trong đó có một hay nhiều câu hỏi, trong mỗi câu hỏi có
nhiều phương án trả lời (thường là 4) và nhiệm vụ của thí sinh là chọn ra câu trả lời
đúng nhất.
Thật ra, trắc nghiệm không chỉ có thế, hình thức thi này rất phong phú, đa
dạng về nội dung và cả hình thức thể hiện. Câu hỏi trắc nghiệm không chỉ kiểm tra
việc thí sinh lựa chọn một phương án trả lời đúng mà còn có thể là kiểm tra kiến
thức kết hợp các ý niệm, kiến thức khác nhau khi tạo đường nối các phương án trả
lời có liên quan. Trong tình huống này, thể hiện của câu hỏi không còn là một số
phương án trả lời với ô đánh dấu để chọn câu trả lời đúng nữa, mà là 2 cột phương
án trả lời được xếp cạnh nhau để thí sinh tạo đường nối giữa các phương án trả lời
có liên quan. Hay trong một tình huống khác, câu hỏi trắc nghiệm có thể kiểm tra
kiến thức thuộc lòng một đoạn ký tự có ý nghĩa nào đó. Lúc này, sẽ không có
phương án trả lời nào được đưa ra để lựa chọn. Việc trả lời câu hỏi được thực hiện
bằng cách điền một đoạn ký tự vào một ô trống cho trước. Câu trả lời này đúng khi
nó so khớp với câu trả lời – là một đoạn ký tự – mà người ra đề mong đợi.
3
1.3 Lý do và mục tiêu của đề tài
Như chúng ta đã nói, hình thức trắc nghiệm đang trở thành một xu hướng tất
yếu cho rất nhiều kỳ thi, đặc biệt là ở trên đất nước Việt Nam chúng ta. Trắc
nghiệm là một hình thức thi có thể ở trên giấy hoặc trên máy tính. Trong đó hình
thức thi trắc nghiệm trên giấy hiện phổ biến hơn, tuy vậy, lại không thuận tiện. Hình
thức thi trên máy tính có những ưu điểm riêng cần quan tâm. Đi xa hơn, hình thức
thi qua mạng đem lại rất nhiều lợi ích. Internet đem mọi người đến lại gần nhau hơn
bất kể không gian. Người ra đề cũng như người dự thi có thể ở bất cứ nơi đâu và bất
cứ khi nào muốn đều có thể thực hiện công việc của mình, không hề có giới hạn về
địa lý, chi phí rẻ do không cần sự di chuyển, phân phối đề thi, thu bài, chấm bài…
Nhận thức được tầm quan trọng đó và trong bối cảnh tại Việt Nam chưa có hệ thống
nào hỗ trợ việc thi trắc nghiệm trực tuyến qua mạng internet một cách toàn diện và
đầy đủ, chúng em quyết định đi sâu vào tìm hiểu và nghiên cứu một số vấn đề quan
trọng sau:
• Tìm hiểu các loại câu hỏi trắc nghiệm về bản chất.
• Xây dựng một bộ khung (framework) có tính tiến hóa cao, phục vụ cho việc
soạn câu hỏi, đề thi, cũng như việc thi cử.
• Xây dựng một hệ thống thi thử nghiệm.
1.4 Cấu trúc của báo cáo:
Từ những mục tiêu trên, chúng em đã thực hiện các công việc và kết quả các
công việc được thể hiện trong báo cáo luận văn này theo cấu trúc như sau:
Báo cáo luận văn gồm 10 chương:
Chương 1. Tổng quan: xu hướng của hình thức thi trắc nghiệm trong các
hình thức thi cử hiện nay, nêu lên nhu cầu thực tế và l ý do thực hiện đề tài, đồng
thời giới thiệu sơ lược về đề tài và mục tiêu phải đạt được.
Chương 2.
4
Chuẩn, chuẩn trắc nghiệm
và đặc tả IMSQTI: trình bày lý do cần đến chuẩn khi thực hiện phần mềm, giới
thiệu chuẩn trắc nghiệm được ưa chuộng trên thế giới và chuẩn được sử dụng trong
hệ thống phần mềm này.
Chương 3. Phân loại câu hỏi trắc nghiệm: chương này sẽ trình bày các dạng
câu hỏi trắc nghiệm theo phân loại của đặc tả IMSQTI.
Chương 4. Kiến trúc chung của phần mềm: chương này trình bày các yêu
cầu đặt ra cho bài toán, sau đó mô tả kiến trúc tổng quan của hệ thống phần mềm,
sự liên lạc giữa các thành tố và cách tổ chức hoạt động của hệ thống.
Chương 5. Module quản lý: trình bày các yêu cầu đặt ra cho module quản lý,
cách tổ chức, hoạt động của module và hướng dẫn sử dụng các chức năng của
module này.
Chương 6. Module soạn thảo: trình bày các yêu cầu đặt ra cho module soạn
thảo, cách tổ chức, hoạt động của module và hướng dẫn sử dụng các chức năng của
module soạn thảo.
Chương 7. Module plugin: trình bày các yêu cầu đặt ra cho module plugin,
cách tổ chức, hoạt động của module và hướng dẫn sử dụng các chức năng.
Chương 8. Module tổ chức thi cử: trình bày các yêu cầu đặt ra cho module
tổ chức thi cử, cách tổ chức, hoạt động và hướng dẫn sử dụng module .
Chương 9. Các kỹ thuật bổ sung: chương này trình bày các kỹ thuật lập
trình, kỹ thuật tổ chức, thiết kế hay, có ảnh hưởng quan trọng trong việc hoàn thành
hệ thống phần mềm nhưng chưa được nói đến ở các phần trên.
Chương 10. Tổng kết: tóm lại các vấn đề đã giải quyết và nêu ra một số
hướng phát triển trong tương lai.
5
Chương 2 Chuẩn, chuẩn trắc nghiệm và đặc tả IMSQTI
2.1 Chuẩn và chuẩn trắc nghiệm
2.1.1 Giới thiệu chung
ISO (International Standards Organization - Tổ chức chuẩn hoá quốc tế) định
nghĩa như sau:
Chuẩn: là các thoả thuận trên văn bản chứa các đặc tả kỹ thuật hoặc các
tiêu chí chính xác khác được sử dụng một cách thống nhất như các luật,
các chỉ dẫn, hoặc các định nghĩa của các đặc trưng, để đảm bảo rằng các
vật liệu, sản phẩm, quá trình, và dịch vụ phù hợp với mục đích của chúng.
Đối với những người làm việc trong lĩnh vực e-Learning (Theo Sun
Microsystems, e-Learning là: việc học tập được phân phối hoặc hỗ trợ qua công
nghệ điện tử. Việc phân phối qua nhiều kĩ thuật khác nhau như Internet, TV,
video tape, các hệ thống giảng dạy thông minh, và việc đào tạo dựa trên máy
tính) mà trắc nghiệm là một phần của nó, các chuẩn e-Learning đóng vai trò rất
quan trọng. Không có chuẩn e-Learning chúng ta sẽ không có khả năng trao đổi với
nhau và sử dụng lại các đối tượng học tập. Nhờ có chuẩn toàn bộ thị trường e-
Learning (người bán công cụ, khách hàng, người phát triển nội dung) sẽ tìm được
tiếng nói chung, hợp tác với nhau được cả về mặt kỹ thuật và mặt phương pháp.
Dựa vào các chuẩn e-Learning có thể giúp chúng ta giải quyết được những vấn đề sau:
• Khả năng truy cập được: truy cập nội dung học tập từ một nơi ở xa cũng
như phân phối cho nhiều nơi khác không gặp trở ngại về khoảng cách địa lý.
• Tính khả chuyển: sử dụng được nội dung học tập phát triển tại ở một nơi
khác, bằng nhiều công cụ và nền tảng khác nhau tại nhiều nơi và trên nhiều
hệ thống khác nhau.
6
• Tính thích ứng: đưa ra nội dung và phương pháp đào tạo phù hợp với từng
tình huống và từng cá nhân.
• Tính sử dụng lại: một nội dung học tập được tạo ra có thể được sử dụng ở
nhiều ứng dụng khác nhau.
• Tính bền vững: vẫn có thể sử dụng được các nội dung học tập khi công
nghệ thay đổi, mà không phải thiết kế lại.
• Tính giảm chi phí: tăng hiệu quả học tập rõ rệt trong khi giảm thời gian và
chi phí.
2.1.2 Tổ chức IMS
Có rất nhiều người và tổ chức liên quan tới các nhóm tham gia quá trình
chuẩn hoá. Các nhóm này đã đưa ra nhiều chuẩn và đặc tả khác nhau. Trong số
các chuẩn và đặc tả về thi trắc nghiệm hiện có trên thế giới, đặc tả IMSQTI
(Instructional Management System – Question and Test) là đặc tả có uy tín
và được nhiều nơi trên thế giới áp dụng nhất.
Hình 2-1 Logo tổ chức IMS
2.1.2.1 Tổ chức IMS
IMS (Instructional Management System) Global Learning Consortium là tổ chức chuyên phát triển và xúc tiến các đặc tả mở để hỗ trợ các hoạt động học tập phân tán trên mạng như định vị và sử dụng nội dung giáo dục, theo dõi quá trình học tập, thông báo kết quả học tập, và trao đổi các thông tin về học viên giữa các hệ thống quản lý. IMS có hai mục tiêu chính:
• Xác định các đặc tả kỹ thuật phục vụ cho việc khả chuyển giữa các ứng dụng và các dịch vụ trong học tập phân tán
• Hỗ trợ việc đưa các đặc tả của IMS vào các sản phẩm và các dịch vụ trên toàn thế giới. IMS xúc tiến việc thực thi các đặc tả sao cho các môi trường học tập phân tán và nội dung từ nhiều nguồn khác nhau có thể hiểu nhau
7
IMS đóng vai trò rất quan trọng trong việc đưa ra các đặc tả trong e-
Learning. Các đặc tả sau đó được các tổ chức ở cấp cao hơn như ADL, IEEE,
ISO sử dụng, chứng nhận thành chuẩn e-Learning dùng ở quy mô rộng rãi.
2.1.2.2 Mục đích, hoạt động của tổ chức IMS
• Tổ chức đưa ra và hỗ trợ các đặc tả dựa trên XML phục vụ cho các công nghệ trong e-Learning. Các đặc tả của IMS được chấp nhận như các chuẩn không chính thức trên toàn thế giới. Nó chính là điều kiện để người mua các hệ thống LMS (Learning Management System – Hệ thống quản lý học tập) đặt ra với người bán và là các hướng dẫn cho những người phát triển các sản phẩm và các dịch vụ e-Learning.
• Để đưa ra một đặc tả, IMS tập hợp các yêu cầu về chức năng, dựa trên khả năng kỹ thuật, và các ưu tiên phát triển từ những người sử dụng, người bán sản phẩm, người mua sản phẩm, và người quản lý. Các yêu cầu này sẽ được các đội dự án của IMS (IMS Project Teams) phát triển thành một bộ các đặc tả bao gồm: Information Model, XML binding, và Best Practice Guide. Các phiên bản Public Drafts Release và Final Releases sẽ được công bố rộng rãi qua trang Web của IMS (www.imsglobal.org). Sau đó, IMS sẽ nhận các ý kiến phản hồi về đặc tả để chỉnh sửa, nâng cấp.
2.1.2.3 Các đặc tả tổ chức IMS đặt ra
Tên đặc tả Chức năng
Meta-Data v1.2.1 Các thuộc tính mô tả các tài nguyên học tập (learning resources) để hỗ trợ cho việc tìm kiếm và phát hiện các tài nguyên học tập
Enterprise v1.1 Các định dạng dùng để trao đổi thông tin về học viên, khóa học giữa các thành phần của hệ thống
Content Package v1.1.3 Các chỉ dẫn để đóng gói và trao đổi nội dung học tập (learning content)
Question and Test Interoperability v1.2
Các định dạng để xây dựng và trao đổi thông tin về đánh giá kết quả học tập
Learner Information Package(LIP) v1.0
Thông tin liên quan đến học viên như khả năng, kết quả học tập
8
Reusable Definition of Competency or Educational Objective v1.0
Là một khung (framework) để trao đổi các kết quả học tập của học viên sử dụng các định nghĩa về các mục tiêu giáo dục
Simple Sequencing v1.0 Xác định các đối tượng học tập được sắp xếp và trình bày tương ứng với từng học viên như thế nào.
Digital Repositories Interoperability v1.0
Gắn kết việc học trên mạng với các tài nguyên thông tin
Learning Design v1.0 Các định nghĩa dùng để mô tả việc thiết kế giảng dạy và học tập
Assessiblity for Learner Information Package v1.0
Đưa thêm các đặc điểm cho đặc tả LIP để gộp dữ liệu bao gồm các yêu cầu thay đổi của học viên, điều kiện sử dụng, công nghệ
Bảng 2-1 Các đặc tả được tổ chức IMS định nghĩa (Theo website: www.el.edu.net.vn)
2.1.2.4 Tại sao tham gia IMS?
Rất nhiều thành viên (trên 100 thành viên) tham gia IMS vì:
• Các công ty và các tổ chức chính phủ đang đầu tư vào e-Learning và các
chương trình quản lý tri thức (knowledge management program) gia nhập
IMS để đảm bảo rằng các chính sách của họ, cơ sở hạ tầng e-Learning, và
các mục tiêu đặc thù của chương trình bắt kịp tối đa với sự phát triển của
công nghệ và xu hướng của e-Learning.
• Các người bán dịch vụ và sản phẩm tham gia để đóng góp vào sự phát
triển và đảm bảo rằng các sản phẩm tung ra phù hợp với các yêu cầu rộng
lớn của thị trường, để đảm bảo tính khả chuyển và có các tính năng dựa
trên chuẩn.
• Các tổ chức đưa ra các dịch vụ giáo dục và đào tạo tham gia để đảm
bảo rằng các quyết định đầu tư của họ là đúng và giảm thiểu rủi ro khi
mua các sản phẩm e-Learning.
9
2.1.2.5 Sự hợp tác của IMS với các tổ chức khác
IMS có sự hợp tác rộng rãi và chặt chẽ với các tổ chức khác để đảm bảo
rằng các đặc tả của IMS có thể áp dụng được rộng rãi trong e-Learning. Dưới
đây là danh sách các tổ chức mà IMS có quan hệ chặt chẽ:
• Advanced Distributed Learning: ADL là một chương trình của bộ quốc
phòng Mĩ (Department of Defense) và Văn Phòng Nhà Trắng về Khoa
học và Công nghệ (White House Office of Science and Technology)
nhằm phát triển các chỉ dẫn cần thiết cho việc phát triển và triển khai e-
Learning ở quy mô lớn. ADL đưa ra các yêu cầu cho các đặc tả của IMS.
ADL sử dụng các đặc tả của IMS. Đối với SCORM 1.3 (Sharable Content
Object Reference Model – Mô hình tham khảo đối tượng nội dung chia
sẻ), ADL sử dụng các đặc tả sau của IMS : Content Package, Simple
Sequencing, Metadata
• ARIADNE: Đây là một dự án của cộng đồng Châu Âu. tập trung vào
phát triển các công cụ và các phương pháp luận để sản xuất ra, quản lý và
sử dụng lại các thành phần giáo dục dựa trên máy tính và các chương
trình đào tạo từ xa. Họ tham gia về đặc tả kỹ thuật trong lĩnh vực meta-
data. ARIADNE hợp tác với IMS phát triển đặc tả meta-data sau đó đưa
lên cho IEEE phê duyệt.
• Aviation Industry CBT Committee (AICC): Tổ chức phát triển các
hướng dẫn cho công nghiệp hàng không thông qua phát triển, đưa ra và
thử nghiệm CBT (Computer-Based Training) và các kỹ thuật liên quan.
IMS đang tích cực hợp tác với các công ty bán công cụ tương thích với
AICC để đảm bảo rằng nội dung tương thích với AICC cũng hỗ trợ các
đặc tả của AICC.
• Dublin Core: Nhóm này đã thiết lập một đặc tả kỹ thuật cho meta-data
của nội dung của thư viện số. Learning Resource Metadata Specification
của IMS tham khảo nhiều đặc tả của Dublic Core.
• European Committee for Standardization/Information Society
Standardization System(CEN/ISSS): CEN là một tổ chức quốc tế, được
10
công nhận bởi cộng đồng Châu Âu, quản lý sự hợp tác của 15 thành viên
của EU. ISSS được thành lập để tập trung chủ yếu vào các yêu cầu về
chuẩn hóa “xã hội thông tin”(information technology), và đã tổ chức một
số hội thảo mở. IMS là một thành viên của hội thảo CEN/ISSS về
Metadata on Multimedia Information. Ngoài ra, IMS cũng đã kí với
CEN/ISSS và các tổ chức khác một bản ghi nhớ hợp tác để tạo nên sự
thống nhất chung về công nghệ giáo dục.
• Institute of Electrical and Electronics Engineers(IEEE): IMS Global
Learning Consortium sẽ tiếp tục hợp tác với IEEE để cùng phát triển các
chuẩn công nghệ quốc tế. Các đặc tả của IMS sẽ được IEEE sử dụng, sau
đó là sự phát triển của đặc tả thành các chuẩn ISO hay ANSI, tức là được
sự chấp thuận của toàn bộ thế giới.
• World Wide Web Consortium(W3C): Thiết lập các đặc tả web. Các đặc
tả nổi tiếng của nó là HTML, XML, SOAP. Mặc dù không đuợc chứng
nhận, các đặc tả của nó đã trở thành chuẩn công nghiệp.
Một số thành viên của IMS: ADL Co-Laboratory, Sun Micro Systems, WebCT,
BlackBoard, Cisco Learning Institue, Digital Think, Microsoft, Oracle,
QuestionMark Computing, Carnegie MellonUniversity, Texas Instruments,
Cisco Systems, Apple Computer, Click2learn, Docent, Saba Software,
University of Cambridge, University of California-Berkeley.
Trong số các đặc tả mà tổ chức IMS đưa ra, đặc tả mà chúng ta quan tâm nhất chính
là đặc tả về thi trắc nghiệm Question and Test Interoperability (Các định dạng
để xây dựng và trao đổi thông tin về đánh giá kết quả học tập).
Chúng ta có thể tham khảo danh sách các công ty và tổ chức đã tuân theo đặc tả
IMS Question and Test Interoperability sau đây 1 : Canvas Learning,
Citogroep (The Netherlands), Giunti Learn eXact, IBM, Open University,
QuestionMark, Oracle, Texas Instruments, WebCT, UkeU
1 Nguồn: http://el.edu.net.vn/mod/book/view.php?id=47&chapterid=65
11
2.2 Đặc tả IMSQTI (Question and Test Interoperability)
2.2.1 Lịch sử các phiên bản:
IMSQTI version 0.5 được công bố vào tháng 3 năm 1999 và version 1.0 được
công bố vào tháng 2 năm 2000, hoàn chỉnh version này vào tháng 5 trong năm đó.
Đặc tả này được mở rộng và cập nhật 2 lần vào tháng 3/2001 và tháng 1/2002. Đến
tháng 3/2003, version 1.2.1 được công bố. Hiện nay, version 2.0 vừa mới được hoàn
chỉnh.
2.2.2 Mục đích thiết kế
Một cách đặc biệt, IMSQTI được thiết kế để:
• Cung cấp một định dạng lưu trữ nội dung tốt, và việc lưu trữ các nội dung
này là độc lập đối với các công cụ đã được dùng để tạo ra chúng.
• Cung cấp khả năng phân phối các kho câu hỏi trên một diện rộng các hệ
thống học tập và đánh giá, kiểm tra khác nhau.
• Cung cấp khả năng sử dụng các câu hỏi và kho câu hỏi tại một hệ thống đơn
với nguồn câu hỏi và kho câu hỏi đa dạng được đưa đến từ các hệ thống khác.
• Cung cấp các hệ thống với khả năng báo cáo các kết quả đánh giá, kiểm tra
nhất quán.
12
Mô hình vai trò của các hệ thống tham gia sử dụng đặc tả IMSQTI:
Hình 2-2 Vai trò của các thành phần tham gia hệ thống sử dụng đặc tả IMSQTI
Trong đó: • authoringTool: công cụ tạo bài thi. • itemBank: kho câu hỏi. • assessmentDeliverySystem: hệ thống phân phối bài thi. • learningSystem: hệ thống học tập • author: tác giả của đề thi (giáo viên). • itemBankManager: người quản lý các kho câu hỏi. • proctor: giám thị/người coi thi. • scorer: giám khảo. • tutor: giáo viên • candidate: thí sinh
13
2.2.3 Cấu trúc tổ chức bài thi và câu hỏi
2.2.3.1 Cấu trúc chung
assessment
section
section
assessmentItem
assessmentItem
assessmentItem
Hình 2-3 Cấu trúc bài thi trong đặc tả IMSQTI
Trong đặc tả IMSQTI, tất cả bài thi, bao gồm trong nó các section và các câu hỏi
đều được lưu trữ bằng XML.
Trong đó:
2.2.3.2 Bài thi
Một bài thi được gọi là 1 assessment, trong 1 bài thi có thể có nhiều section.
2.2.3.3 Section
Một section được hiểu như là 1 bài thi con hay 1 phần của bài thi, trong
section có nhiều câu hỏi, gọi là các assessmentItem.
2.2.3.4 Câu hỏi
Câu hỏi được gọi là assessmentItem.
14
Ví dụ: cấu trúc XML của 1 câu hỏi trông có dạng như sau:
<?xml version="1.0" encoding="UTF-8"?> <assessmentItem identifier="choiceMultiple" title="Composition of Water" adaptive="false" timeDependent="false"> <responseDeclaration identifier="RESPONSE" cardinality="multiple" baseType="identifier"> <correctResponse> <value>H</value> <value>O</value> </correctResponse> <mapping lowerBound="0" upperBound="2" defaultValue="-2"> <mapEntry mapKey="H" mappedValue="1"/> <mapEntry mapKey="O" mappedValue="1"/> <mapEntry mapKey="Cl" mappedValue="-1"/> </mapping> </responseDeclaration> <outcomeDeclaration identifier="SCORE" cardinality="single" baseType="integer"/> <itemBody> <choiceInteraction responseIdentifier="MR01" shuffle="true" maxChoices="0"> <prompt>Which of the following elements are used to form water?</prompt> <simpleChoice identifier="H" fixed="false">Hydrogen</simpleChoice> <simpleChoice identifier="He" fixed="false">Helium</simpleChoice> <simpleChoice identifier="C" fixed="false">Carbon</simpleChoice> <simpleChoice identifier="O" fixed="false">Oxygen</simpleChoice> <simpleChoice identifier="N" fixed="false">Nitrogen</simpleChoice> <simpleChoice identifier="Cl" fixed="false"> Chlorine</simpleChoice> </choiceInteraction> </itemBody> <responseProcessing template="http://www.imsglobal.org/question/qti_v2p0/rptemplates/map_response"/> </assessmentItem>
15
Chương 3 Phân loại câu hỏi trắc nghiệm Theo như chuẩn IMSQTI, các câu hỏi trắc nghiệm được phân loại theo kịch
bản tương tác và xử lý của câu hỏi, nói cách khác, là phân loại theo bản chất của
câu hỏi.
IMSQTI đưa ra khái niệm interaction, đó chính là tương tác hay bản chất
của một câu hỏi. interaction là một lớp tổng quát ở bên trên, dưới nó là các
interaction con, tương ứng với từng loại câu hỏi cụ thể.
IMSQTI cũng đưa ra khái niệm về choice, đó chính là các phương án trả lời
hay các lựa chọn của câu hỏi. choice cũng là một lớp tổng quát bên trên, dưới nó là
các lớp con tùy thuộc cho từng loại câu hỏi.
3.1 Sơ đồ lớp interaction
3.1.1 interaction
Hình 3-1 Sơ đồ lớp interaction
3.1.2 inlineInteraction
Hình 3-2 Sơ đồ lớp inlineInteraction
16
3.1.3 blockInteraction
Hình 3-3 Sơ đồ lớp blockInteraction
3.2 Sơ đồ lớp choice
Hình 3-4 Sơ đồ lớp choice
17
3.3 Các loại câu hỏi phân loại theo interaction
Sau đây là phân loại các câu hỏi trắc nghiệm theo khái niệm interaction trong
đặc tả IMS Question and Test Interoperability.
3.3.1 choiceInteraction
Đây là loại câu hỏi trắc nghiệm thông dụng nhất và khi nghĩ đến trắc nghiệm,
chúng ta thường nghĩ đến loại câu hỏi này. Câu hỏi loại này thường có một hay
nhiều phương án trả lời, nhiệm vụ của thí sinh là chọn ra phương án trả lời đúng
nhất hoặc là các phương án trả lời đúng trong trường hợp có nhiều phương án trả lời
đúng. Trong câu hỏi sẽ có nhiều lựa chọn gọi là các simpleChoice.
Ví dụ:
Hình 3-5 Câu hỏi choiceInteraction với 1 lựa chọn đúng
Hình 3-6 Câu hỏi choiceInteraction với nhiều lựa chọn đúng
18
3.3.2 orderInteraction
Câu hỏi loại này thường có nhiều simpleChoice mà ta tạm gọi là các phương
án trả lời. Trong đó, không có simpleChoice nào là đúng, chỉ có thứ tự ưu tiên trước
sau của chúng là có ý nghĩa. Nhiệm vụ của thí sinh là sắp xếp lại các phương án trả
lời này theo thứ tự đúng của chúng.
Ví dụ:
Hình 3-7 Câu hỏi orderInteraction
3.3.3 associateInteraction
Là loại câu hỏi trắc nghiệm kết nối nhiều lựa chọn.
Câu hỏi loại này nhiều lựa chọn, nhiệm vụ của thí sinh là nối một lựa chọn với
các lựa chọn khác có liên quan.
Các lựa chọn này gọi là các simpleAssociableChoice.
Ví dụ:
Hình 3-8 Câu hỏi associateInteraction
19
3.3.4 matchInteraction
Câu hỏi loại này có 2 cột các phương án trả lời được đặt đứng cạnh nhau, nhiệm vụ của thí sinh là nối các phương án của cột này với một hay nhiều phương án có liên quan ở cột bên cạnh. Loại câu hỏi này khác với loại associateInteraction ở chỗ: trong loại này, một phương án trả lời không được phép tạo liên kết với 1 phương án khác trong cùng cột, trong khi loại associateInteraction thì cho phép.
Trong câu hỏi sẽ có 2 cột phương án trả lời gọi là 2 simpleMatchSet, mỗi simpleMatchSet chứa nhiều simpleAssociableChoice.
Ví dụ:
Hình 3-9 Câu hỏi matchInteraction
3.3.5 gapMatchInteraction
Loại câu hỏi trắc nghiệm này hơi khác thường, câu hỏi loại này thường có 1 hay nhiều chỗ trống trong đoạn văn ngữ cảnh dùng làm câu hỏi. Thí sinh có nhiệm vụ điền vào các chỗ trống này bằng một trong các phương án trả lời được cho sẵn ở bên dưới.
Trong câu hỏi sẽ có nhiều chỗ trống gọi là gapChoice, mỗi gapChoice có thể là text (gapText) hay hình ảnh (gapImg).
Ví dụ:
Hình 3-10 Câu hỏi gapMatchInteraction
20
3.3.6 inlineChoiceInteraction
Câu hỏi loại này có một vị trí văn bản (text) bị khuyết trong ngữ cảnh đoạn
văn dùng làm câu hỏi. Các giá trị phương án trả lời để điền vào chỗ khuyết này sẽ
được cho trước và nhiệm vụ của thí sinh là chọn phương án đúng trong số các
phương án đã cho.
Trong câu hỏi sẽ có nhiều lựa chọn gọi là các inlineChoice, mỗi inlineChoice
đơn thuần là một đoạn văn bản (a simple run of text).
Ví dụ:
Hình 3-11 Câu hỏi inlineChoiceInteraction
3.3.7 textEntryInteraction
Câu hỏi loại này gần giống với loại inlineChoiceInteraction, chỉ khác ở chỗ:
không có các phương án gợi ý để chọn, thí sinh phải tự nghĩ ra phương án trả lời và
điền vào chỗ trống.
Ví dụ:
Hình 3-12 Câu hỏi loại textEntryInteraction
21
3.3.8 extendedTextInteraction
Về mặt hình thức, câu hỏi loại này yêu cầu thí sinh trả lời cho câu hỏi bằng cách viết một đoạn văn bản, có thể dài, để trả lời cho câu hỏi được đưa ra.
Thực chất, câu hỏi loại này là một câu hỏi tự luận đơn giản, có thể là một bài tiểu luận.
Ví dụ:
Hình 3-13 Câu hỏi extendedTextInteraction
3.3.9 hottextInteraction
Câu hỏi hottextInteraction có một hay nhiều phương án trả lời, tuy nhiên, các phương án này không được để riêng bên dưới câu hỏi để trả lời cho câu hỏi mà chính là một phần của đoạn văn bản câu hỏi. Nhiệm vụ của thí sinh là chọn ra phương án trả lời đúng nhất bằng cách click chọn trên chính câu hỏi vào các vị trí được đánh dấu là câu trả lời.
Trong câu hỏi sẽ có nhiều lựa chọn gọi là các simpleChoice. Câu hỏi loại này thường được đưa ra nhằm xác định lỗi sai trong đoạn văn đóng vai trò câu hỏi.
Ví dụ:
Hình 3-14 Câu hỏi hottextInteraction
22
3.3.10 hotspotInteraction
Loại câu hỏi này hiển thị gồm phần nội dung câu hỏi bằng văn bản và phần
hình ảnh kèm theo. Trên hình ảnh định nghĩa các vị trí đặc biệt đóng vai trò là các
phương án trả lời. Thí sinh trả lời cho câu hỏi bằng cách click vào một vị trí hợp lệ
trên hình vẽ.
Về bản chất, loại này giống như loại hottextInteraction, chỉ khác là thay vì là
text thì là hình ảnh.
Ví dụ:
Hình 3-15 Câu hỏi hotspotInteraction
23
3.3.11 selectPointInteraction
Câu hỏi loại này giống như câu hỏi loại hotspotInteraction, khác nhau là ở chỗ:
nhiệm vụ của thí sinh thay vì click chọn một hay nhiều vị trí được định nghĩa là các
phương án trả lời thì phải click một số chỗ nào đó theo suy nghĩ của mình mà không
có gợi ý là các vị trí được định nghĩa sẵn.
Ví dụ:
Hình 3-16 Câu hỏi selectPointInteraction
24
3.3.12 graphicOrderInteraction
Câu hỏi loại này có nhiều phương án trả lời chính là các vị trí được đánh dấu
trên 1 hình vẽ, nhiệm vụ của thí sinh là gắn cho mỗi vị trí này một số thứ tự sao cho
thứ tự các vị trí trên hình là đúng với yêu cầu của câu hỏi.
Trong câu hỏi sẽ có nhiều lựa chọn gọi là các hotspotChoice, mỗi
hotspotChoice thật sự là một vùng hình ảnh được định nghĩa sẵn trên hình vẽ cho
trước.
Ví dụ:
Hình 3-17 Câu hỏi graphicOrderInteraction
25
3.3.13 graphicAssociateInteraction
Loại câu hỏi trắc nghiệm này về bản chất giống như loại associateInteraction,
nhưng thay vì các phương án trả lời là văn bản thì là hình ảnh.
Ví dụ:
Hình 3-18 Câu hỏi graphicAssociateInteraction
26
3.3.14 graphicGapMatchInteraction
Loại câu hỏi trắc nghiệm này về bản chất giống như loại gapMatchInteraction,
nhưng các phương án trả lời là hình ảnh thay cho văn bản.
Ví dụ:
Hình 3-19 Câu hỏi graphicGapMatchInteraction
3.3.15 positionObjectInteraction
Câu hỏi loại này yêu cầu thí sinh đặt một hình ảnh vào đúng vị trí của nó trên
một hình ảnh khác. Trên hình ảnh thứ 2 này, không có vị trí đặc biệt nào được phép
định nghĩa trước.
Ví dụ:
Hình 3-20 Câu hỏi positionObjectInteraction
27
3.3.16 sliderInteraction
Câu hỏi loại này thể hiện cho thí sinh một thanh điều khiển cho phép chọn lựa
một giá trị số trong một tập số liên tục được cho trước. Có giá trị biên dưới và biên
trên cho tập giá trị cho trước này.
Ví dụ:
Hình 3-21 Câu hỏi sliderInteraction
3.3.17 drawingInteraction
Câu hỏi loại này yêu cầu thí sinh dùng một tập hợp các công cụ vẽ cho trước
để chỉnh sửa một hình ảnh đề cho.
3.3.18 uploadInteraction
Câu hỏi loại này yêu cầu thí sinh upload 1 file theo yêu cầu.
3.3.19 customInteraction
Đây là loại câu hỏi trắc nghiệm mở rộng. Loại này mang ý nghĩa là một loại
câu hỏi trắc nghiệm chưa được định nghĩa trong đặc tả của IMSQTI. Điều đó có
nghĩa là chúng ta có thể thêm những loại câu hỏi mới chưa có trong đặc tả để phù
hợp với nhu cầu trong tình huống cụ thể.
28
Chương 4 Kiến trúc chung của phần mềm
4.1 Phát biểu bài toán:
ETSONLINE là một hệ thống framework dịch vụ hỗ trợ các hình thức trắc
nghiệm khác nhau. Hệ thống cho phép các tài khoản là giáo viên quản lý hiệu quả
sinh viên cùng các đề thi, câu hỏi …; hỗ trợ các tài khoản là sinh viên hoàn thành
việc làm các bài thi trắc nghiệm một cách nhanh chóng, tiện lợi; giúp đỡ các tài
khoản là người quản trị điều hành tốt và chặt chẽ hệ thống.
Một tài khoản mới được đăng ký sẽ mặc định có quyền là sinh viên. Một sinh
viên bắt buộc phải thuộc quyền quản lý của một giáo viên trong hệ thống. Sinh viên
này chỉ có thể thực hiện các bài thi do giáo viên phụ trách đưa ra. Sau khi thực hiện
thi, sinh viên sẽ được xem ngay kết quả bài thi hoặc sẽ phải gọi điện thoại đến hệ
thống trả lời tự động để nghe kết quả (tùy vào yêu cầu của giáo viên)
Giáo viên có toàn quyền quản lý sinh viên cùng các câu hỏi, section, đề thi
thuộc phạm vi của mình.
Hệ thống quản lý dựa trên thư mục, tức là các sinh viên, câu hỏi, bài thi đều
được nhóm vào trong các loại thư mục phù hợp. Một tài khoản giáo viên sẽ đi kèm
với các thư mục chứa sinh viên, bài thi, câu hỏi thuộc quyền quản lý của giáo viên
đó. Giáo viên có quyền tạo thêm thư mục con ngoài 3 thư mục chính trên để hỗ trợ
cho việc quản lý. Giáo viên cũng có thể cấu trúc lại cây thư mục riêng của mình
bằng các thao tác kéo thả rất tiện lợi.
Giáo viên được hỗ trợ tạo ra câu hỏi mới bằng nhiều cách như là soạn trực tiếp
trên hệ thống web, soạn trên hệ thống Windows rồi upload lên mạng, import từ
word hoặc excel. Nội dung chính của câu hỏi được lưu trữ dưới dạng XML theo gần
đúng chuẩn IMSQTI, vì vậy hệ thống cũng hỗ trợ việc kết xuất câu hỏi ra theo đúng
chuẩn để tiện trao đổi dữ liệu với các hệ thống khác. Giáo viên có thể xem thông tin
thống kê chi tiết cho từng câu hỏi, di chuyển câu hỏi sang một thư mục khác, sửa
nội dung câu hỏi hoặc xóa hẳn câu hỏi khỏi cơ sở dữ liệu. Hệ thống hỗ trợ nhiều
loại câu hỏi và các loại câu hỏi sẽ được plugin động vào trong hệ thống.
29
Giáo viên có thể tạo ra 2 loại section. Loại thứ nhất là section tự phát sinh ra
câu hỏi khi có yêu cầu thi dựa trên số câu hỏi trong section và ngân hàng câu hỏi
được chỉ định. Loại thứ hai thì giáo viên phải trực tiếp chọn từng câu hỏi sẽ được
hiển thị trong section. Các section cũng có thể được tổ chức thành nhiều cấp như
thư mục và người giáo viên cũng có thể dễ dàng cấu trúc lại mối quan hệ giữa các
section bằng thao tác kéo thả. Giáo viên cũng có thể xem các thông tin thống kê cho
từng section, chọn lại các câu hỏi cho section, sửa thông tin section và xóa hẳn
section khỏi cơ sở dữ liệu.
Các đề thi được tạo ra bằng cách chỉ định các section nào sẽ thuộc đề thi đó.
Giáo viên có thể chọn mẫu thể hiện (template) cho đề thi cũng như chọn yêu cầu
sinh viên được xem kết quả ngay sau khi thi hay không. Giáo viên cũng có thể xem
thống kê về bài thi, xem danh sách sinh viên đã làm bài thi đó cùng với kết quả chi
tiết của các lần thi đó. Bên cạnh đó, giáo viên còn có thể export đề thi ra định dạng
file word để thực hiện thi trên giấy.
Các sinh viên sau khi đăng ký tài khoản thì sẽ thuộc thư mục quản lý sinh viên
chung của giáo viên phụ trách, nhưng sau đó giáo viên sẽ có thể di chuyển sinh viên
vào thư mục con phù hợp. Giáo viên có quyền tạo thêm sinh viên bằng cách tạo trực
tiếp trên hệ thống hoặc import danh sách sinh viên từ file excel. Giáo viên cũng có
thể xem các thông tin thống kê về sinh viên cũng như sửa thông tin sinh viên hay
xóa hẳn sinh viên khỏi cơ sở dữ liệu.
Hệ thống có cả module dành cho web và module dành cho Windows, vì vậy
giáo viên còn có thêm quyền cập nhật dữ liệu thi của mình trên Windows lên cơ sở
dữ liệu dùng cho web. Chức năng này nhằm mục đích hỗ trợ giáo viên thao tác
nhanh chóng, tiện lợi trên môi trường Windows cho phù hợp với điều kiện tốc độ
internet ở nước ta.
Ngoài ra, tất cả các tài khoản đều có thế cấu hình thể hiện của hệ thống theo ý thích
riêng của mình như chọn ngôn ngữ thể hiện, bố trí lại các thành phần giao diện …
30
4.2 Mô hình kiến trúc và tổ chức hoạt động
Hình 4-1 Mô hình kiến trúc và tổ chức
4.2.1 Engine
Trong hệ thống, module Engine sẽ chứa các định nghĩa chung, làm các nhiệm vụ
chung nhất cho cả ứng dụng web và windows, cụ thể, trong engine sẽ chứa các
nhóm lớp đối tượng sau:
- Các lớp đối tượng cơ bản của phần mềm.
- Các lớp đối tượng của đặc tả IMSQTI, trừ các lớp interaction cụ thể cho từng
loại câu hỏi.
- Các lớp truy xuất cơ sở dữ liệu.
- Các lớp xử lý điều khiển.
- Các lớp tiện ích
o Cung cấp cơ chế ứng dụng web đa ngôn ngữ.
o Cung cấp cơ chế bảo mật, đăng nhập, phân quyền.
o Cung cấp các hàm convert.
o Cung cấp các hàm truy xuất các thuộc tính chung từ file cấu hình.
31
Mối quan hệ giữa Engine và các component khác:
- Tất cả các module khác đều tham chiếu đến Engine khi làm việc.
- Engine cung cấp tất cả những định nghĩa, khái niệm, class, phương thức,
thuộc tính, thông tin cấu hình, cơ chế hoạt động chung cho tất cả các module
khác trong hệ thống bao gồm ứng dụng web, ứng dụng windows, module
plugin trên web, module plugin trên windows, module import, export.
- Engine là một component độc lập, không tham chiếu đến module nào khác
trong hệ thống.
- Engine định nghĩa tất cả các lớp abstract cha mà các module con phải tạo các
lớp kế thừa và xử lý.
Hình 4-2 Mối quan hệ giữa Engine và các component khác
32
4.2.1.1 Sơ đồ tổ chức của Engine
Hình 4-3 Sơ đồ tổ chức của Engine
33
4.2.1.2 Sơ đồ lớp của Engine
ETSEngineBasicObject: là nơi định nghĩa và cài đặt tất cả các đối tượng dùng
chung của hệ thống, bao gồm: bài thi, câu hỏi…
Hình 4-4 Sơ đồ lớp phần ETSEngineBasicObject của Engine
34
IMSQTIBasicObjects: là nơi định nghĩa và cài đặt tất cả các class nằm trong đặc tả
IMS Question and Test Interoperability, trừ các class phụ thuộc từng câu hỏi là các
class interaction cụ thể của từng loại câu hỏi và các class mô tả các phương án trả
lời.
Hình 4-5 Sơ đồ lớp phần IMSQTIBasicObject của Engine
ETSEngineControllerObjects: phần này định nghĩa và cài đặt tất cả các class liên
quan đến xử lý chung cho hệ thống.
ETSEngineControllerObjects
ExportIMSQTIDatabase
ScoringMachine WordMachine
ExportEngine ImportEngine
MailEngine
SectionUserResult
AssessmentUserResult AssessmentUserResponse
SectionUserResponse
QuestionUserResponseDatabaseController
Hình 4-6 Sơ đồ lớp phần ETSEngineControllerObject của Engine
35
ETSEngineDBManager: là nơi định nghĩa và cài đặt tất cả các interface, các class
liên quan đến truy xuất cơ sở dữ liệu cùng các class cung cấp cơ chế cho việc truy
xuất dữ liệu theo mô hình n-tier.
ETSEngineDBManager
DatabaseInterface
DBManager
IQuestionManager ISectionManager
IAssessmentManager IMemberManager
…………………….
SQLSERVER
SqlServerDBManager
QuestionManager SectionManagerAssessmentManager
MemberManager …………………….
XML…………………..
Hình 4-7 Sơ đồ lớp phần ETSEngineDBManager
36
4.2.2 ETSONLINE
Là phần ứng dụng chạy trên web của hệ thống. Đây là một web application,
có nhiệm vụ thực hiện các chức năng của hệ thống, bao gồm tất cả các công việc từ
việc soạn câu hỏi, đề thi đến việc thi cử trên mạng. ETSONLINE là phần ứng dụng
chính, quan trọng nhất của hệ thống.
4.2.2.1 Sơ đồ tổ chức của ứng dụng ETSONLINE
ETSONLINE
Các file ngôn ngữ
Các trang web aspx
Các file lưu thông tin cấu hình
Các trang user control ascx
Các tài nguyên hình ảnh, flash...
Đây là nơi thật sự chứa các thông tin và các xử lý nghiệp vụ của hệ thống
Hiện hệ thống hỗ trợ 2 ngôn ngữ tiếng Việt và tiếng Anh
Các trang web này thực sự không chứa nội dung cũng như xử lý nghiệp vụ, thật sự chúng là các cổng điều phối các luồng xử lý vào thể hiện vào đúng vị trí cần thiết
Các file template đề thiCác file plugin cần thiết
của các bộ câu hỏi
choiceInteraction
inlineChoiceInteraction
………...
Hình 4-8 Sơ đồ tổ chức ứng dụng ETSONLINE
37
4.2.2.2 Sơ đồ tổ chức các lớp
Tổ chức class ETSONLINE
Các class của web pages
Các bộ câu hỏi
Default
Testing
MemberAdministration
ImportExport
Management
ViewStatistics
RestructureFolder
ChooseQuestionForSection
ChooseSectionForAssessment
Các class của user control
CreateAssessment
CreateNewFolder
MoveFolder
CreateSection
ConfigUI
Register
CreateNews
MoveMember
ReportMemberResult
CustomTestList ViewQuestionContainer ViewTest
ViewSection SummaryQuestionList SummarySectionList
SummaryAssessmentList SummaryMemberList SummarySectionList
ViewProfile ViewQuestionStatistics PortalLeftMenu
choiceInteraction inlineChoiceInteraction ……..
RestructureSections Global ……...
PortalTopMenu PortalHeader ………
Hình 4-9 Sơ đồ tổ chức lớp trong ETSONLINE
38
4.2.2.3 Các chức năng chính:
Ứng dụng ETSONLINE đã giải quyết được những vấn đề chính sau:
(Một số vấn đề sẽ được trình bày tương đối chi tiết, một số phần khác sẽ
được trình bày rõ hơn ở các chương sau trong các chương về module Quản lý, Soạn
thảo, Plugin và Thi cử)
1. Tạo ra một cổng thông tin đa năng portal đóng vai trò là cổng vào của hệ
thống dịch vụ thi cử trực tuyến mà chúng ta đang phát triển.
Hình 4-10 Trang chủ ETSONLINE
39
2. Có một vùng tiến trình quản lý
theo cấp cây thư mục phục vụ cho
việc sử dụng và quản lý các tài
nguyên phân cấp dành cho cả nhà
quản trị và cả các thành viên đóng
vai trò là giáo viên. Tài nguyên
được quản lý phân cấp ở đây bao
gồm: kho câu hỏi, kho bài thi, thư
mục chứa thành viên và section.
Hình 4-11 Phân cấp quản lý theo cấu trúc cây
Hình 4-12 Trang quản lý chính của ETSONLINE
40
3. Có các chức năng để soạn thảo ra các câu hỏi hoàn chỉnh, và chỉnh sửa
chúng. Trong việc soạn câu hỏi, cho phép plugin câu hỏi tùy ý, cho phép mở
rộng tối đa khả năng thêm loại câu hỏi mới.
Hình 4-13 Demo chức năng soạn thảo câu hỏi
4. Phân cấp xử lý soạn thảo, lưu trữ, xử lý thể hiện, xử lý tính điểm cho câu hỏi
đến mức con nhất có thể. Mỗi loại câu hỏi phải tự biết mình phải được soạn
thảo bằng bộ editor nào, thể hiện bằng control nào, lưu trữ những thông tin gì
và chấm điểm ra sao.
5. Có các chức năng tạo mới, chỉnh sửa đề thi một cách thuận tiện nhất, có
nhiều mẫu template bài thi để người giáo viên chọn lựa, đồng thời người
giáo viên có thể chỉnh sửa template này hoặc thêm một template mới hoàn
toàn một cách nhanh chóng.
41
6. Quản lý nội dung đề thi theo dạng phân cấp, mỗi đề thi có thể có các phần đề
thi con, và mỗi phần con này lại có thể có các phần con khác. Việc thay đổi
cấu trúc nội dung đề thi chỉ đơn giản là check, bỏ check và kéo thả.
7. Có các bộ editor soạn thảo đa năng, có thể định dạng một cách dễ dàng font
chữ, cỡ chữ, chèn các ký tự đặc biệt, chèn bảng biểu, chỉnh sửa các thuộc
tính định dạng, chèn hình ảnh, video, flash, nhạc…
8. Có phần xử lý hiển thị đề thi có các dạng câu hỏi với thể hiện và xử lý khác
nhau mà không được biết trước.
9. Có phần chấm điểm với khả năng tùy biến, chấm điểm theo cách xử lý riêng
của từng loại câu hỏi. Muốn thay đổi cách chấm điểm của bất cứ loại câu hỏi
nào cũng dễ dàng.
10. Thông tin về kết quả lựa chọn khi làm bài thi và kết quả chi tiết của bài thi
được lưu trữ đầy đủ, kỹ càng theo định dạng XML, giúp cho việc truy xuất,
thống kê kết quả làm bài, theo dõi kết quả học tập có thể thực hiện bất cứ lúc
nào.
Hình 4-14 Kết quả bài thi được truyền đi bằng XML
42
11. Thông tin truyền thông kết quả lựa chọn khi làm bài và kết quả chấm điểm đều sử dụng XML.
12. Đặc biệt, do hệ thống tuân theo đặc tả IMSQTI, một đặc tả dựa trên XML, hệ thống hiện tại có chức năng kết xuất một hay nhiều tài nguyên kho câu hỏi ra định dạng chuẩn của đặc tả IMSQTI, từ đó, có thể chia sẻ cơ sở dữ liệu với tất cả các hệ thống khác trên thế giới có tuân theo đặc tả này. (Và có thể import cơ sở dữ liệu từ các hệ thống khác trong tương lai). Chức năng kết xuất này sử dụng XSLT để chuyển đổi từ định dạng đang sử dụng sang định dạng chuẩn đúng đặc tả. Nội dung file XSLT làm nhiệm vụ chuyển đổi xin xem trong phần phụ lục.
13. Có phần gửi tin nhắn ngắn gọn giúp giáo viên có thể gửi tin nhắn nhanh đến sinh viên của mình qua cổng portal này.
14. Cung cấp một cơ chế web đa ngôn ngữ linh động. File ngôn ngữ được lưu trữ dưới dạng XML. Mỗi thành viên có thông tin cấu hình riêng. Khi đăng nhập vào trang web, ngôn ngữ hiển thị của trang web sẽ là ngôn ngữ mà thành viên này đã chọn. Một người chưa phải là thành viên cũng có thể chọn ngôn ngữ hiển thị cho riêng mình. Khi cần thêm một ngôn ngữ mới, chỉ cần làm công việc hết sức đơn giản là thêm vào thư mục file ngôn ngữ một file ngôn ngữ của ngôn ngữ mình muốn thêm vào – file này chỉ việc lấy mẫu và cấu trúc bằng việc copy lại một file có sẵn và dịch sang ngôn ngữ mới.
Cấu trúc file XML lưu ngôn ngữ: <?xml version="1.0"?> <Resources language="Tên ngôn ngữ" code="Mã ngôn ngữ"> <page name="Tên trang web hoặc control"> <!-- Ten_Trang_Web_Control.ascx --> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> </page> <page name="Tên trang web hoặc control"> <!-- Ten_Trang_Web_Control.ascx --> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> </page>
43
<page name="Tên trang web hoặc control"> <!-- Ten_Trang_Web_Control.ascx --> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> <Resource tag="Tên thẻ">Nội dung thẻ</Resource> </page> </Resources>
Ví dụ: <?xml version="1.0"?> <Resources language="Vietnamese" code="vi"> <page name="LOGIN"> <!-- login.ascx --> <Resource tag="TITLE">Đăng nhập</Resource> <Resource tag="USERNAME">Tên đăng nhập</Resource> <Resource tag="PASSWORD">Mật khẩu</Resource> <Resource tag="REMEMBER_ME">Tự động đăng nhập</Resource> <Resource tag="PASSWORD_PROBLEM">Bạn gặp trục trặc ? Hay là quên mật khẩu ? </Resource> <Resource tag="BTN_LOGIN">Đăng nhập</Resource> <Resource tag="LOGIN_SUCCESSFULLY">Đăng nhập thành công!</Resource> <Resource tag="HAVE_NOT_GOT_ACCOUNT">Bạn chưa có tài khoản ? Vui lòng</Resource> <Resource tag="REGISTER">Đăng ký</Resource> <Resource tag="USERNAME_PASSWORD_ERROR">Tên đăng nhập và mật khẩu của bạn không hợp lệ. Vui lòng làm lại nhé!</Resource> <Resource tag="BOTH_USERNAME_PASSWORD">Bạn hãy nhập cả tên đăng nhập và mật khẩu</Resource> <Resource tag="RECOVER">Phục hồi mật khẩu</Resource> <Resource tag="EMAIL_SENT_PASSWORD">Chúng tôi đã gửi cho bạn mật khẩu mới!</Resource> <Resource tag="SEND_PASSWORD">Gửi mật khẩu</Resource> <Resource tag="RECOVER_ERROR">Việc tạo mới mật khẩu bị lỗi</Resource> </page> <page name="REGISTER"> <!-- register.aspx --> <Resource tag="TITLE">Đăng ký thành viên mớir</Resource> <Resource tag="DETAILS">Thông tin đăng ký</Resource> <Resource tag="USERNAME">Tên tài khoản</Resource> <Resource tag="NEED_USERNAME">Bạn chưa nhập tên tài khoản.</Resource> <Resource tag="PASSWORD">Mật mã</Resource> <Resource tag="NEED_PASSWORD">Bạn chưa nhập mật mã.</Resource> <Resource tag="RETYPE_PASSWORD">Nhập lại mật mã</Resource> <Resource tag="NEED_MATCH">Mật mã không giống nhau.</Resource> <Resource tag="EMAIL">Địa chỉ email</Resource> <Resource tag="PROFILE">Thông tin cá nhân</Resource>
44
<Resource tag="LOCATION">Location</Resource> <Resource tag="HOMEPAGE">Home Page</Resource> <Resource tag="PREFERENCES">Forum Preferences</Resource> <Resource tag="TIMEZONE">Múi giờ</Resource> <Resource tag="ALREADY_REGISTERED">Tên tài khoản hoặc địa chỉ email của bạn đã được đăng ký rồi.</Resource> <Resource tag="REGISTER">Đăng ký</Resource> <Resource tag="BAD_EMAIL">Email không hợp lệ.</Resource> </page> <!-- ... --> </Resources>
15. Có cơ chế plugin các thành phần giao diện. Mỗi thành phần giao diện trên
trang chủ là một component được phát triển riêng và tích hợp vào hệ thống.
Nhà quản trị có thể thêm bớt các component này vào hệ thống bằng cách đơn
giản là copy, paste hay delete.
16. Cung cấp cho các thành viên khả năng cấu hình các thành phần giao diện.
Mỗi thành viên có thể cho phép hiển thị trên trang web những thành phần
mình thích hay quan trọng với chính mình và tại vị trí bên trái hay bên phải
tùy thích.
17. Cung cấp cơ chế bảo mật FormsAuthenticationTicket đảm bảo hệ thống
website được bảo mật, phân quyền an toàn. Đảm bảo mỗi thành viên không
thể truy cập vào tài khoản của các thành viên khác, đồng thời, những người
chưa phải là thành viên không thể truy cập vào những khu vực chỉ dành riêng
cho thành viên.
18. Tầng truy xuất cơ sở dữ liệu thực hiện viết code an toàn, dùng store
procedure và truyền tham số theo parameter, giúp cho tránh được lỗ hổng Sql
Injection.
45
4.2.3 ETSClient
Là phần ứng dụng chạy trên windows. Là một windows application có nhiệm
vụ thực hiện bổ sung những tiện ích hữu dụng cho hệ thống phần mềm ở trên
windows và thực hiện một số tính năng trợ giúp cho ứng dụng web nhằm đem lại
những lợi ích về thời gian xử lý cũng như thuận tiện trong tương tác mà các ứng
dụng web không có được.
Mục tiêu chính là:
- Người giáo viên có thể soạn đề thi, câu hỏi trên windows với những tiện ích
tốt nhất cùng với tốc độ xử lý nhanh của máy client, không phụ thuộc tốc độ
và sự ổn định của đường truyền internet. Sau đó, người giáo viên sẽ kết nối
internet và upload đề thi lên tài khoản của mình trên server và sinh viên có
thể làm bài thi trên mạng.
- Tạo ra phần dành cho thí sinh thi cử tập dượt ngay trên máy tính của mình
khi load xong đề thi mẫu và các đề thi tham khảo trên server.
- Thực hiện import đề thi từ các nguồn dữ liệu điện tử có sẵn hoặc kết xuất đề
thi người giáo viên đã soạn để cho sinh viên, học sinh của mình thi trên giấy.
46
4.2.3.1 Sơ đồ tổ chức của ứng dụng ETSClient
Hình 4-15 Sơ đồ tổ chức ứng dụng ETSClient
47
4.2.3.2 Sơ đồ tổ chức các lớp
Hình 4-16 Sơ đồ tổ chức lớp trong ETSClient
4.2.3.3 Các chức năng chính:
Các chức năng chính trong ứng dụng ETSClient bao gồm:
(Cũng như phần trên, một số vấn đề sẽ được trình bày tương đối chi tiết, một
số phần khác sẽ được trình bày rõ hơn ở các chương sau trong các chương về
module Quản lý, Soạn thảo, Plugin và Thi cử)
48
1. Quản lý theo cấp cây thư mục phục vụ cho việc sử dụng và quản lý các tài
nguyên phân cấp dành cho cả nhà quản trị và cả các thành viên đóng vai trò
là giáo viên.
2. Có các chức năng để soạn thảo ra các câu hỏi hoàn chỉnh, và chỉnh sửa
chúng. Trong việc soạn câu hỏi, cho phép plugin câu hỏi tùy ý, cho phép mở
rộng tối đa khả năng thêm loại câu hỏi mới. Bộ soạn thảo trên windows là
một phần của bộ câu hỏi mà trong đó có bộ soạn thảo trên web. Mỗi loại câu
hỏi phải tự biết mình phải được soạn thảo bằng bộ editor nào.
3. Có các chức năng tạo mới, chỉnh sửa đề thi một cách thuận tiện nhất, có
nhiều mẫu template bài thi để người giáo viên chọn lựa, đồng thời người
giáo viên có thể chỉnh sửa template này hoặc thêm một template mới hoàn
toàn một cách nhanh chóng.
4. Quản lý nội dung đề thi theo dạng phân cấp, mỗi đề thi có thể có các phần đề
thi con, và mỗi phần con này lại có thể có các phần con khác. Việc thay đổi
cấu trúc nội dung đề thi chỉ đơn giản là check, bỏ check và kéo thả,… giống
như ứng dụng trên web.
5. Có các bộ editor soạn thảo đa năng, có thể định dạng một cách dễ dàng Font
chữ, cỡ chữ, chèn các ký tự đặc biệt, chèn bảng biểu, chỉnh sửa các thuộc
tính định dạng, chèn hình ảnh…Đặc biệt, ứng dụng trên windows có bộ soạn
thảo với input và output đều là HTML. Điều đó có nghĩa là tất cả những gì
người giáo viên trông thấy khi soạn câu hỏi trên windows thì cũng sẽ trông
thấy như vậy khi câu hỏi được hiển thị trên web và ngược lại do đều cùng có
input và output vào editor là HTML.
6. Tầng truy xuất cơ sở dữ liệu thực hiện viết code an toàn, dùng store
procedure và truyền tham số theo parameter, giúp cho tránh được lỗ hổng Sql
Injection.
49
4.2.4 InteractionDefinition
Là module tổ chức định nghĩa các interaction riêng cho các loại câu hỏi cụ thể.
Định nghĩa của mỗi loại câu hỏi sẽ được sử dụng chung cho các plugin câu hỏi cả
trên web và trên windows.
4.2.4.1 Sơ đồ tổ chức
Hình 4-17 Sơ đồ tổ chức InteractionDefinition
4.2.4.2 Sơ đồ lớp
Hình 4-18 Sơ đồ tổ chức lớp trong InteractionDefinition
50
4.2.5 ImportExportEngine
Là module độc lập thực hiện khả năng import danh sách các câu hỏi từ
Microsoft Word và export đề thi ngược lại ra Word, giúp ích cho việc nhập liệu
nhanh chóng hơn nữa, tận dụng lại các dữ liệu điện tử đã có sẵn, đồng thời giúp cho
đề thi được soạn ra không chỉ được dành cho thi cử trên web mà còn có thể in ra và
tổ chức thi trên giấy một cách tự động.
4.2.6 QuestionsPlugins
Là module cung cấp các dạng câu hỏi cụ thể cho phần ứng dụng web. Các
dạng câu hỏi khác nhau đều được đưa vào hệ thống phần mềm dưới dạng plugin.
Một bộ câu hỏi mới khi cài đặt vào ứng dụng web sẽ gồm file dll chứa định nghĩa
interaction của loại câu hỏi đó, file dll chứa các class, xử lý soạn thảo, xử lý thể
hiện, xử lý tính điểm riêng có của loại câu hỏi mà nó định nghĩa cùng với các file
user control (ascx) tương ứng.
(Phần này sẽ được trình bày rõ hơn ở chương 7: Module plugin)
4.2.7 UserInterfacePlugins
Là module cung cấp các plugin giao diện cho hệ thống ứng dụng web. Hệ
thống plugin giao diện gồm 2 phần chính: phần plugin các gói hiển thị thông tin trên
trang chủ và phần plugin các gói skin hiển thị bài thi.
(Phần này sẽ được trình bày rõ hơn ở chương 7: Module plugin)
4.2.8 ETSPluginService
Là module cung cấp các dạng câu hỏi cụ thể cho phần ứng dụng windows.
Cũng như phần ứng dụng trên web, các dạng câu hỏi khác nhau đều được đưa vào
hệ thống phần mềm dưới dạng plugin. Một bộ câu hỏi mới khi cài đặt vào ứng dụng
web sẽ gồm file dll chứa định nghĩa interaction của loại câu hỏi đó, file dll chứa các
class, xử lý soạn thảo, xử lý thể hiện, xử lý tính điểm riêng có của loại câu hỏi mà
nó định nghĩa cùng với các file tài nguyên cần thiết.
(Phần này sẽ được trình bày rõ hơn ở chương 7: Module plugin)
51
4.2.9 HelpCenter
Đây là module cung cấp tất cả những gì liên quan đến các tài liệu, văn bản,
bao gồm:
- Hướng dẫn sử dụng cho hệ thống phần mềm trên web và trên windows.
- Các tài liệu tra cứu kiến thức Anh văn, tin học và các môn học phổ thông
khác.
Module này được viết dưới dạng 1 website HTML. Mục tiêu là sử dụng cho cả ứng
dụng web và windows, vừa là một website giúp đỡ đặt trên server, vừa là một cuốn
user manual - hướng dẫn sử dụng.
4.2.9.1 Sơ đồ tổ chức
HelpCenter
Tra cứu kiến thức ELearning
Trang chủ
Hướng dẫn sử dụng chung
Hướng dẫn sử dụng ETSClient
Hướng dẫn sử dụng ETSONLINE
Download tài liệu
Liên hệ & tác giả
Hình 4-19 Sơ đồ tổ chức HelpCenter
4.2.9.2 Giao diện
Hình 4-20 HelpCenterMenu
52
Hình 4-21 Liên hệ tác giả
Hình 4-22 Hướng dẫn sử dụng ETSONLINE
53
4.3 Thiết kế dữ liệu
4.3.1 Lược đồ các bảng dữ liệu
Hình 4-23 Sơ đồ các bảng dữ liệu
4.3.2 Danh sách và chức năng các bảng dữ liệu
Tên bảng Chức năng
IMSQTIAssessment Lưu trữ thông tin về các đề thi.
IMSQTIFolder Lưu trữ thông tin về các thư mục để quản lý.
IMSQTIMember Lưu trữ thông tin các tài khoản sử dụng hệ thống.
IMSQTIQuestion Lưu trữ thông tin về các câu hỏi.
IMSQTISection Lưu trữ thông tin về các section.
Member_AssessmentDone Lưu trữ thông tin kết quả thi của các thí sinh.
54
Member_Configuration Lưu trữ thông tin cấu hình các thành phần giao diện
của các tài khoản.
MemberInRoles Lưu trữ thông tin về quyền của các tài khoản.
News Lưu trữ thông tin về các tin tức của các giáo viên
thông báo cho sinh viên.
Question_Section Ghi nhận section có chứa các câu hỏi nào.
Role Lưu trữ thông tin về các loại quyền trong hệ thống.
Section_Assessment Ghi nhận bài thi có chứa các section nào.
Section_AutoGeneratingInfo Lưu trữ thông tin về loại section tự phát sinh câu hỏi.
Hình 4-24 Danh sách các bảng dữ liệu
55
Chương 5 Module quản lý
5.1 Đặc tả yêu cầu chức năng của module quản lý
Trong hệ thống hỗ trợ thi trắc nghiệm trực tuyến, module quản lý phải đảm
nhiệm các chức năng sau đây:
1. Đăng ký thành viên.
2. Bảo mật thông tin thành viên.
3. Bảo mật hệ thống, thực hiện cơ chế đăng nhập, phân quyền.
4. Quản lý câu hỏi
5. Quản lý đề thi
6. Quản lý các thành viên tham gia hệ thống gồm nhà quản trị, các giáo
viên và các sinh viên.
7. Quản lý ngân hàng đề thi.
8. Quản lý ngân hàng câu hỏi.
9. Phát sinh các báo cáo, thống kê về ngân hàng câu hỏi, đề thi, danh sách
thí sinh.
56
5.2 Mô hình Use-Case
5.2.1 Lược đồ chính của mô hình Use-Case
5.2.1.1 Lược đồ
Student
ConfigUserInterfaceComponent
LoginRegister
CreateFolderDeleteFolderRestructureFolder
DeleteQuestion
MoveQuestion
ViewQuestionStatistics
ExportToIMSQTI
DeleteSectionViewSectionStatistics
RestructureSection DeleteAssessmentViewAssessmentStatistics
ExportToMSWord
CreateMember
ImportStudentList
DeleteMember
MoveMember
ViewMemberStatisticsViewProfile
Teacher
UpdateDataFromWin
Admin ChangeRole
Hình 5-1 Mô hình Use-Case module quản lý
57
5.2.1.2 Danh sách các Actor
STT Actor Ý nghĩa
1 Admin Người quản trị hệ thống
2 Teacher Giáo viên
3 Student Sinh viên
Bảng 5-1 Danh sách actor module quản lý
5.2.1.3 Danh sách các Use-Case chính
STT Use-Case Ý nghĩa
1 ChangeRole Chuyển quyền của 1 tài khoản từ sinh
viên sang giáo viên hoặc ngược lại
2 Login Chức năng đăng nhập vào hệ thống
3 Register Chức năng đăng ký tài khoản mới để
bắt đầu sử dụng hệ thống
4 CreateFolder Thực hiện tạo mới 1 thư mục con
5 DeleteFolder Xóa 1 thư mục
6 RestructureFolder Cấu trúc lại cây thư mục
7 DeleteQuestion Xóa 1 câu hỏi khỏi cơ sở dữ liệu
8 MoveQuestion Di chuyển 1 câu hỏi sang 1 thư mục
khác
9 ViewQuestionStatistics Xem thông tin thống kê về 1 câu hỏi
10 ExportToIMSQTI Export các câu hỏi ra file xml theo
đúng chuẩn IMSQTI
11 DeleteSection Xóa section trong CSDL
12 ViewSectionStatistics Xem thông tin thống kê về 1 section
13 RestructureSection Thực hiện cấu trúc lại quan hệ giữa
các section
14 DeleteAssessment Xóa bài thi trong CSDL
15 ViewAssessmentStatistics Xem thông tin thống kê về 1 bài thi
58
16 ExportToMSWord Kết xuất bài thi ra file word
17 CreateMember Tạo mới 1 sinh viên
18 ImportStudentList Import 1 danh sách các sinh viên từ
file excel
19 DeleteMember Xóa 1 tài khoản trong CSDL
20 MoveMember Di chuyển 1 tài khoản sang 1 thư mục
khác
21 ViewMemberStatistics Xem thông tin thống kê về 1 sinh viên
22 ViewProfile Xem tất cả thông tin về 1 tài khoản
23 UpdateDataFromWin
Thực hiện cập nhật dữ liệu về câu hỏi,
bài thi … từ hệ thống windows lên hệ
thống web
24 ConfigUserInterfaceComponent Cấu hình lại các thành phần giao diện
Bảng 5-2 Danh sách Use-Case module quản lý
5.2.2 Đặc tả một số Use-Case chính
5.2.2.1 Đặc tả Use-Case “CreateFolder”
5.2.2.1.1 Tóm tắt
Use-case này cho phép giáo viên tạo thêm 1 thư mục là con của 1 thư mục
khác trong CSDL.
5.2.2.1.2 Dòng sự kiện
5.2.2.1.2.1 Dòng sự kiện chính
1. Use-case này bắt đầu khi giáo viên chọn vào link “Create child folder”.
2. Hệ thống lưu giữ lại loại thư mục cần tạo (thư mục chứa tài khoản, câu
hỏi hay bài thi) và mã của thư mục cha được chọn.
3. Hệ thống lấy thông tin về thư mục cha thông qua mã.
4. Hệ thống hiển thị màn hình các thông tin đã chọn và cho phép giáo viên
nhập tên thư mục cần tạo.
59
5. Giáo viên nhấn nút “Create” để xác nhận việc tạo thư mục mới.
6. Hệ thống thêm 1 thư mục mới vào cơ sở dữ liệu.
7. Hệ thống load lại trang web để thêm thư mục mới vào cây thư mục.
5.2.2.1.2.2 Các dòng sự kiện khác
Giáo viên chưa nhập tên thư mục cần tạo
Nếu giáo viên chưa nhập tên thư mục cần tạo mà đã nhấn nút xác
nhận việc tạo mới thì hệ thống sẽ có thông báo lỗi.
5.2.2.1.3 Các yêu cầu đặc biệt
Giáo viên phải chọn vào 1 nút trên cây thư mục (tức là chọn thư mục cha) thì
mới có thể nhấn vào link tạo thư mục con.
5.2.2.1.4 Điều kiện tiên quyết
Người dung phải đăng nhập thành công với tài khoản có quyền giáo viên hay
người quản trị.
5.2.2.1.5 Điều kiện kết thúc
Không có.
5.2.2.1.6 Điểm mở rộng
Không có.
5.2.2.2 Đặc tả Use-Case “ChangeRole”
5.2.2.2.1 Tóm tắt
Use-case này cho phép nhà quản trị chuyển quyền 1 tài khoản từ quyền “sinh
viên” thành quyền “giáo viên” và ngược lại.
5.2.2.2.2 Dòng sự kiện
5.2.2.2.2.1 Dòng sự kiện chính
60
1. Use-case này bắt đầu khi người dùng chọn vào nút xác nhận sự chuyển
quyền.
2. Hệ thống đọc thông tin của tài khoản muốn thay đổi quyền.
3. Hệ thống ghi nhận lại quyền hiện tại và quyền muốn chuyển thành.
4. Người quản trị nhấn nút xác nhận lại yêu cầu thay đổi.
5. Nếu 2 quyền khác nhau, hệ thống sẽ ghi nhận sự thay đổi quyền của tài
khoản trong CSDL.
6. Nếu quyền mới là “giáo viên”, hệ thống sẽ tạo ra các thư mục quản lý
tương ứng bao gồm thư mục gốc, thư mục ngân hàng câu hỏi, thư mục
ngân hàng đề thi và thư mục quản lý sinh viên.
5.2.2.2.2.2 Các dòng sự kiện khác
Quyền hiện tại và quyền muốn chuyển thành giống nhau
Hệ thống thông báo cho người dùng là 2 quyền giống nhau và use-
case ngừng.
Nếu quyền muốn chuyển thành là “sinh viên”
Hệ thống thực hiện từ bước 1 bước 5 giống dòng sự kiện chính.
Bước tiếp theo là hệ thống sẽ xóa hết các thông tin quản lý thuộc tài
khoản đó, tức là xóa các câu hỏi, các section, các bài thi và các tài khoản thuộc
quyền quản lý của tài khoản bị thay đổi quyền, đồng thời xóa các thư mục quản lý
thuộc về tài khoản đang xử lý.
5.2.2.2.3 Các yêu cầu đặc biệt
Không có.
5.2.2.2.4 Điều kiện tiên quyết
Người dùng phải đăng nhập thành công vào hệ thống với quyền người quản trị.
5.2.2.2.5 Điều kiện kết thúc
Không có.
61
5.2.2.2.6 Điểm mở rộng
Không có.
5.2.2.3 Đặc tả Use-Case “CreateMember”
5.2.2.3.1 Tóm tắt
Use-case này cho phép người dùng tạo 1 tài khoản mới thuộc quyền quản lý
của mình.
5.2.2.3.2 Dòng sự kiện
5.2.2.3.2.1 Dòng sự kiện chính
1. Use-case này bắt đầu khi người dùng chọn vào liên kết “Create new
member”.
2. Hệ thống ghi nhận lại thông tin người dùng này.
3. Hệ thống mở ra trang điền thông tin tài khoản muốn tạo ra.
4. Người dùng nhấn nút “Create” để xác nhận yêu cầu tạo mới.
5. Hệ thống tạo mới 1 tài khoản trong CSDL, tài khoản này thuộc thư mục
thành viên của người dùng đang đăng nhập vào hệ thống.
5.2.2.3.2.2 Các dòng sự kiện khác
Không có.
5.2.2.3.3 Các yêu cầu đặc biệt
Không có.
5.2.2.3.4 Điều kiện tiên quyết
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên hay
người quản trị.
5.2.2.3.5 Điều kiện kết thúc
Không có.
62
5.2.2.3.6 Điểm mở rộng
Không có.
5.2.2.4 Đặc tả Use-Case “UpdateDataFromWin”
5.2.2.4.1 Tóm tắt
Use-case này cho phép giáo viên cập nhật dữ liệu ngân hàng câu hỏi, đề thi
của mình từ CSDL riêng trên windows lên CSDL chung trên web
5.2.2.4.2 Dòng sự kiện
5.2.2.4.2.1 Dòng sự kiện chính
1. Use-case này bắt đầu khi người dùng chọn yêu cầu “Synchronization”.
2. Hệ thống sẽ yêu cầu người dùng nhập địa chỉ máy chủ.
3. Hệ thống sẽ tạo kết nối với cơ sở dữ liệu trên máy chủ được cung cấp.
4. Hệ thống sẽ yêu cầu người dùng nhập tên tài khoản và mật khẩu để
đăng nhập vào hệ thống trên mạng.
5. Người dùng nhấn nút xác nhận đăng nhập.
6. Hệ thống sẽ lấy tất cả dữ liệu của người dùng trên cơ sở dữ liệu trên
windows.
7. Hệ thống kiểm tra dữ liệu của người dùng trên web và thực hiện cập
nhật với dữ liệu mới lấy từ windows.
5.2.2.4.2.2 Các dòng sự kiện khác
Địa chỉ máy chủ không chính xác
Hệ thống thông báo lỗi không kết nối được và use-case ngừng.
Tên tài khoản hay mật khẩu dùng để đăng nhập vào hệ thống trên mạng
không đúng
Hệ thống thông báo không thể đăng nhập và yêu cầu nhập lại.
5.2.2.4.3 Các yêu cầu đặc biệt
Người dùng phải kết nối internet.
63
5.2.2.4.4 Điều kiện tiên quyết
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên.
5.2.2.4.5 Điều kiện kết thúc
Không có.
5.2.2.4.6 Điểm mở rộng
Không có.
5.2.2.5 Đặc tả Use-Case “ExportToMSWord”
5.2.2.5.1 Tóm tắt
Use-case này cho phép người dùng export 1 bài thi ra dạng file .doc.
5.2.2.5.2 Dòng sự kiện
5.2.2.5.2.1 Dòng sự kiện chính
1. Use-case này bắt đầu khi người dùng chọn yêu cầu kết xuất đề thi ra
file.
2. Hệ thống hiển thị trang kết xuất đề thi ra file.
3. Hệ thống yêu cầu người dùng lựa chọn các tùy chọn kết xuất.
4. Hệ thống sẽ đọc thông tin của đề thi được chọn.
5. Hệ thống tạo ra file word mới.
6. Hệ thống kết xuất các thông tin như tiêu đề bài thi, header, footer … ra
file.
7. Hệ thống xây dựng định dạng file word cho phù hợp với các tùy chọn.
8. Hệ thống bắt đầu kết xuất các section, câu hỏi thuộc đề thi đang được
xử lý.
9. Với mỗi câu hỏi, hệ thống sẽ đọc file xml cấu hình câu hỏi và load
đúng lớp xử lý export của câu hỏi đó và thực hiện kết xuất câu hỏi đó
ra file.
64
10. Hệ thống lưu file lại và ghi nhận đường link đến file đó để thông báo
cho người dùng.
5.2.2.5.2.2 Các dòng sự kiện khác
Không có.
5.2.2.5.3 Các yêu cầu đặc biệt
Yêu cầu hệ thống được cài trên máy có sẵn Microsoft word.
5.2.2.5.4 Điều kiện tiên quyết
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên.
5.2.2.5.5 Điều kiện kết thúc
Không có.
5.2.2.5.6 Điểm mở rộng
Không có.
5.3 Các lược đồ tuần tự chính
5.3.1 Lược đồ tuần tự “CreateFolder”:
: Teacher : pManagement : pCreateFolder
: Engine.FolderController
1: // choose "Create child folder"
2: GetFolderById()
3: // show page
4: OnBtnCreate_Click()
5: CreateNewFolder()
6: // refresh in order to update folder tree
65
5.3.2 Lược đồ tuần tự “ChangeRole”:
: Admin : pViewProfile
: Engine.RoleController : Engine.FolderController
1: // choose "ChangeRole"
2: OnBtnChangeRole_Click()
4: // CreateNewFolder()
If new role == "teacher"
3: UpdateRole()
If new role <> old role
5.3.3 Lược đồ tuần tự “CreateMember”:
: Teacher : pManagement : pCreateMember
: Engine.MemberController
1: // choose "Create new member"
2: // show page
3: OnBtnCreate_Click()
4: CreateNewMember()
66
5.3.4 Lược đồ tuần tự “UpdateDataFromWin”:
: Teacher : pManagement : pSynchronization
: SynchronizationCotroller
1: // choose "Synchronization"
2: // show page
3: // input Server address
4: // input Username & Password
6: OnBtnSynchronize_Click()
5: Connect()
7: UpdateDataFromWin()
5.3.5 Lược đồ tuần tự “ExportToMSWord”:
: Teacher : pManagement : pExport
: Engine.ExportEngine : Engine.AssessmentController : Engine.SectionController : Engine.QuestionController
1: // choose "Export assessment to Word
2: // show page
3: // choose options for exporting
4: OnBtnExport_Click()
5: ExportToMSWord()
6: GetAssessmentById()
8: GetAllSectionsInAssessment()
10: GetAllQuestionsInSection
7: BuildAssessment()
9: BuildSections
11: BuildQuestions
67
5.4 Các màn hình giao diện chính và hướng dẫn sử dụng
5.4.1 Chức năng quản lý câu hỏi
5.4.1.1 Mô tả chức năng
Với mỗi câu hỏi, chức năng quản lý câu hỏi cho phép người dùng thực hiện
các yêu cầu sau:
- Xem chi tiết, xóa, di chuyển từng câu hỏi.
- Xem thông tin thống kê của câu hỏi.
5.4.1.2 Màn hình giao diện trên web
Hình 5-2 Quản lý danh sách câu hỏi trên web
68
Hình 5-3 Xem thông tin thống kê của câu hỏi
5.4.1.3 Màn hình giao diện trên window
Hình 5-4 Quản lý danh sách câu hỏi trên windows
69
5.4.2 Chức năng quản lý đề thi
5.4.2.1 Mô tả chức năng
Với mỗi đề thi, chức năng quản lý đề thi cho phép người dùng thực hiện các
yêu cầu sau:
- Xem chi tiết, xóa từng đề thi.
- Xem thông tin thống kê của câu hỏi.
- Kết xuất đề thi ra file .doc.
5.4.2.2 Màn hình giao diện trên web
Hình 5-5 Quản lý danh sách bài thi trên web
70
Màn hình kết xuất đề thi ra file Word
Hình 5-6 Kết xuất đề thi ra file Word
Mẫu kết xuất là yêu cầu chọn file template cho thể hiện của đề thi trên giấy.
Các template này được tạo sẵn và chứa trong thư mục WordFile Templates của hệ
thống.
Cách trình bày câu hỏi là tùy chọn sắp xếp các câu hỏi thành 1 cột, 2 cột …
Đánh số lại là tùy chọn đánh số câu hỏi lại từ đầu với mỗi section.
Ngắt trang theo section là tùy chọn mỗi section sẽ sang 1 trang mới.
Sau khi hoàn tất các lựa chọn, giáo viên nhấn nút “Kết xuất” để yêu cầu hệ
thống thực hiện yêu cầu kết xuất.
71
Hình 5-7 Xem thông tin thống kê bài thi
5.4.3 Chức năng quản lý thành viên
5.4.3.1 Mô tả chức năng
Với mỗi thành viên (tài khoản), chức năng quản lý thành viên cho phép người
dùng thực hiện các yêu cầu sau:
- Tạo tài khoản sinh viên mới.
- Nhập danh sách sinh viên từ file excel.
- Sửa, xóa, di chuyển tài khoản.
- Xem chi tiết thông tin tài khoản.
- Xem thông tin thống kê về tài khoản.
72
5.4.3.2 Màn hình giao diện trên web
Hình 5-8 Quản lý danh sách thành viên trên web
Hình 5-9 Xem hồ sơ thành viên
73
Hình 5-10 Import danh sách sinh viên từ file Excel
Giáo viên nhấn nút “Tìm file …” và chỉ đến file excel chứa thông tin về các sinh viên muốn import vào hệ thống.
Có 4 cột bắt buộc phải có là Mã sinh viên, Họ sinh viên, Tên sinh viên, Mật khẩu để đăng nhập vào hệ thống. Mã sinh viên sẽ được dùng làm tên tài khoản dùng để đăng nhập. Các thông tin thêm sẽ được liệt kê theo thứ tự cột trong file excel, mỗi thông tin cách nhau bởi dấu “;”.
Sau khi hoàn tất, giáo viên nhấn nút “Upload” để xác nhận yêu cầu tải file excel lên web và thực hiện import.
Hình 5-11 Di chuyển thành viên đang được chọn
Giáo viên chọn một nhóm tài khoản khác rồi nhấn nút “Di chuyển” để xác nhận và yêu cầu hệ thống cập nhật sự thay đổi.
74
Hình 5-12 Xem thông tin thống kê về tình hình trả lời câu hỏi của sinh viên
75
5.4.3.3 Màn hình giao diện trên windows
Hình 5-13 Quản lý danh sách thành viên trên windows
5.4.4 Chức năng quản lý ngân hàng câu hỏi, ngân hàng đề thi
5.4.4.1 Mô tả chức năng
Chức năng quản lý ngân hàng đề thi, ngân hàng câu hỏi hỗ trợ các thao tác sau:
- Tạo kho câu hỏi, đề thi mới.
- Xóa, đổi tên kho câu hỏi, đề thi.
- Cấu trúc lại quan hệ giữa các kho.
- Xem chi tiết thông tin kho câu hỏi, đề thi.
76
5.4.4.2 Màn hình giao diện trên web
Giáo viên có thể dễ dàng sử dụng chuột
kéo và thả các thư mục để cấu trúc lại
mối quan hệ giữa các thư mục theo ý
muốn, nhưng lưu ý là chỉ có thể cấu trúc
lại mối quan hệ giữa các thư mục cùng
loại. Ví dụ: không thể kéo thư mục là
kho câu hỏi trở thành con của thư mục là
kho đề thi được.
Hình 5-14 Quản lý kho câu hỏi, kho bài thi, thành viên, cấu trúc section
Hình 5-15 Cấu trúc lại quan hệ giữa các thư mục
77
5.4.4.3 Màn hình giao diện trên windows
Hình 5-16 Các chức năng đối với thư mục trên windows
78
Chương 6 Module soạn thảo
6.1 Đặc tả yêu cầu chức năng của module soạn thảo
Trong hệ thống hỗ trợ thi trắc nghiệm trực tuyến, module soạn thảo phải đảm
nhiệm các chức năng sau đây:
1. Soạn thảo nội dung câu hỏi.
2. Import câu hỏi từ file .doc.
3. Soạn thảo thông tin section.
4. Biên tập nội dung section.
5. Soạn thảo thông tin đề thi.
6. Biên tập nội dung đề thi.
6.2 Mô hình Use-Case
6.2.1 Lược đồ chính của mô hình Use-Case
6.2.1.1 Lược đồ
CreateQuestionEditQuestion
ImportQuestionFromMSWord
CreateSection
EditSectionSelectQuestions
CreateAssessment
EditAssessmentTeacher
SelectSections
Hình 6-1 Sơ đồ Use-Case module soạn thảo
79
6.2.1.2 Danh sách các Actor
STT Actor Ý nghĩa
1 Teacher Giáo viên
Bảng 6-1 Danh sách actor module soạn thảo
6.2.1.3 Danh sách các Use-Case chính
STT Use-Case Ý nghĩa
1 CreateQuestion Soạn thảo tạo mới 1 câu hỏi
2 ImportQuestionFromMSWord Import các câu hỏi từ file word vào
trong 1 ngân hàng câu hỏi nào đó.
3 CreateSection Sọan thảo các thông tin tạo mới 1
section.
4 SelectQuestions Thực hiện chọn các câu hỏi cho 1
section.
5 CreateAssessment Soạn thảo các thông tin tạo mới 1 đề
thi.
6 SelectSections Thực hiện chọn các section cho 1 đề
thi.
7 EditQuestion Sửa nội dung 1 câu hỏi.
8 EditSection Sửa thông tin 1 section.
9 EditAssessment Sửa thông tin 1 đề thi.
Bảng 6-2 Danh sách Use-Case module soạn thảo
6.2.2 Đặc tả một số Use-Case chính
6.2.2.1 Đặc tả Use-Case “CreateQuestion”
6.2.2.1.1 Tóm tắt
Use-case này cho phép giáo viên soạn thảo tạo 1 câu hỏi mới.
6.2.2.1.2 Dòng sự kiện
80
6.2.2.1.2.1 Dòng sự kiện chính
1. Use-case này bắt đầu khi giáo viên chọn vào link “Create new
question”.
2. Hệ thống đọc trong file xml cấu hình các loại câu hỏi đang có trong hện
thống để hiển thị các loại thể hiện soạn câu hỏi.
3. Giáo viên chọn 1 loại thể hiện soạn câu hỏi.
4. Hệ thống đọc file xml cấu hình của loại câu hỏi được chọn để load
đúng control hiển thị màn hình soạn câu hỏi tương ứng với loại thể hiện
đã chọn.
5. Giáo viên nhập các thông tin cần thiết về câu hỏi và các lựa chọn.
6. Giáo viên nhấn nút “Create” để xác nhận việc tạo câu hỏi mới.
7. Hệ thống thực hiện các bước xây dựng chuỗi xml nội dung chính của
câu hỏi dựa vào các thông tin được nhập vào.
8. Hệ thống thêm 1 câu hỏi mới vào trong CSDL.
6.2.2.1.2.2 Các dòng sự kiện khác
Giáo viên không nhập đủ dữ liệu cho câu hỏi
Giáo viên không nhập đủ dữ liệu yêu cầu để tạo câu hỏi mà đã nhấn
nút xác nhận muốn tạo câu hỏi thì hệ thống sẽ thông báo lỗi.
6.2.2.1.3 Các yêu cầu đặc biệt
Không có.
6.2.2.1.4 Điều kiện tiên quyết
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên.
6.2.2.1.5 Điều kiện kết thúc
Không có.
6.2.2.1.6 Điểm mở rộng
Không có.
81
6.2.2.2 Đặc tả Use-Case “ImportQuestionFromMSWord”
6.2.2.2.1 Tóm tắt
Use-case này cho phép người dùng import 1 loạt các câu hỏi vào ngân hàng
câu hỏi từ 1 file word theo định dạng quy định trước.
6.2.2.2.2 Dòng sự kiện
6.2.2.2.2.1 Dòng sự kiện chính
1. Use-case này bắt đầu khi giáo viên chọn vào link “Import questions
from file”.
2. Hệ thống hiển thị trang cho người dùng nhập các thông tin giúp cho
việc import.
3. Người dùng chọn đường dẫn đến file word và chọn loại câu hỏi sẽ được
import (1 lần chỉ import được cùng 1 loại câu hỏi)
4. Người dùng nhấn nút “Import” để xác nhận yêu cầu.
5. Hệ thống đọc file xml cấu hình của loại câu hỏi muốn import để load
đúng lớp xử lý import cho loại câu hỏi đó.
6. Hệ thống bắt đầu đọc nội dung file word.
7. Dựa vào dấu phân cách (quy ước trước), hệ thống lấy nội dung từng
câu hỏi truyền vào lớp xử lý import.
8. Lớp xử lý import sẽ tiến hành xây dựng chuỗi xml nội dung của từng
câu hỏi.
9. Hệ thống thêm các câu hỏi mới vào CSDL.
6.2.2.2.2.2 Các dòng sự kiện khác
Không có.
6.2.2.2.3 Các yêu cầu đặc biệt
Không có.
6.2.2.2.4 Điều kiện tiên quyết
82
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên.
6.2.2.2.5 Điều kiện kết thúc
Không có.
6.2.2.2.6 Điểm mở rộng
Không có.
6.2.2.3 Đặc tả Use-Case “CreateSection”
6.2.2.3.1 Tóm tắt
Use-case này cho phép giáo viên soạn thảo các thông tin để tạo 1 section mới.
6.2.2.3.2 Dòng sự kiện
6.2.2.3.2.1 Dòng sự kiện chính
1. Use-case này bắt đầu khi giáo viên chọn vào link “Create new section”.
2. Hệ thống hiển thị trang cho phép soạn thảo thông tin section.
3. Người dùng nhập thông tin và chọn các tùy chọn.
4. Người dùng nhấn nút “Create” để xác nhận yêu cầu tạo section mới.
5. Hệ thống thêm 1 section vào cơ sở dữ liệu.
6. Hệ thống hiển thị liên kết đến trang chọn các câu hỏi cho section vừa
tạo.
6.2.2.3.2.2 Các dòng sự kiện khác
Không có.
6.2.2.3.3 Các yêu cầu đặc biệt
Không có.
6.2.2.3.4 Điều kiện tiên quyết
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên.
6.2.2.3.5 Điều kiện kết thúc
83
Không có.
6.2.2.3.6 Điểm mở rộng
Không có.
6.2.2.4 Đặc tả Use-Case “SelectQuestions”
6.2.2.4.1 Tóm tắt
Use-case này cho phép giáo viên chỉ định các câu hỏi nào sẽ được sử dụng
trong 1 section nào đó.
6.2.2.4.2 Dòng sự kiện
6.2.2.4.2.1 Dòng sự kiện chính
1. Use-case bắt đầu khi giáo viên chọn link “Select questions” của 1
section.
2. Hệ thống đọc tất cả các ngân hàng chứa câu hỏi của giáo viên trong hệ
thống và xây dựng thành cây thư mục.
3. Giáo viên chọn từng node trong cây thư mục và hệ thống sẽ hiển thị các
câu hỏi có trong thư mục (node) được chọn cùng với tình trạng chọn
tương ứng (câu hỏi nào đã có trong section này rồi thì sẽ được check)
4. Giáo viên sửa lại trạng thái check của các câu hỏi để thêm vào hay xóa
bớt câu hỏi trong section.
5. Giáo viên nhấn nút “Update” để cập nhật trạng thái chọn của các câu
hỏi.
6. Hệ thống sẽ ghi nhận lại trạng thái chọn của các câu hỏi trong CSDL.
7. Giáo viên tiếp tục làm việc với node khác trong cây thư mục.
6.2.2.4.2.2 Các dòng sự kiện khác
Không có.
6.2.2.4.3 Các yêu cầu đặc biệt
Không có.
84
6.2.2.4.4 Điều kiện tiên quyết
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên.
6.2.2.4.5 Điều kiện kết thúc
Không có.
6.2.2.4.6 Điểm mở rộng
Không có.
6.2.2.5 Đặc tả Use-Case “CreateAssessment”
6.2.2.5.1 Tóm tắt
Use-case này cho phép giáo viên soạn thảo các thông tin để tạo 1 đề thi mới.
6.2.2.5.2 Dòng sự kiện
6.2.2.5.2.1 Dòng sự kiện chính
1. Use-case này bắt đầu khi giáo viên chọn vào link “Create new
assessment”.
2. Hệ thống hiển thị trang cho phép soạn thảo thông tin đề thi.
3. Người dùng nhập thông tin và chọn các tùy chọn.
4. Người dùng nhấn nút “Create” để xác nhận yêu cầu tạo đề thi mới.
5. Hệ thống thêm 1 đề thi vào cơ sở dữ liệu.
6. Hệ thống hiển thị liên kết đến trang chọn các section cho đề thi vừa tạo.
6.2.2.5.2.2 Các dòng sự kiện khác
Không có.
6.2.2.5.3 Các yêu cầu đặc biệt
Không có.
6.2.2.5.4 Điều kiện tiên quyết
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên.
85
6.2.2.5.5 Điều kiện kết thúc
Không có.
6.2.2.5.6 Điểm mở rộng
Không có.
6.2.2.6 Đặc tả Use-Case “SelectSections”
6.2.2.6.1 Tóm tắt
Use-case này cho phép giáo viên thêm/bớt các section cho 1 đề thi.
6.2.2.6.2 Dòng sự kiện
6.2.2.6.2.1 Dòng sự kiện chính
1. Use-case bắt đầu khi giáo viên chọn link “Select sections” cho 1 đề thi.
2. Hệ thống sẽ tìm tất cả các section thuộc quyền quản lý của giáo viên
đang đăng nhập vào hệ thống và xây dựng thành cây section, mỗi node
trên cây sẽ có 1 nút checkbox thể hiện tình trạng được chọn của section
của tương ứng (nếu section đã có trong bài thi thì nút checkbox sẽ được
check)
3. Giáo viên check lại các ô checkbox để sửa đổi lại cấu trúc bài thi, quy
định là nếu chọn section cha thì mặc nhiên tất cả section con sẽ được
chọn, và nếu bỏ chọn 1 section con thì cũng là bỏ chọn section cha.
4. Giáo viên nhấn vào linkbutton để yêu cầu cập nhật trạng thái tổ chức
section của bài thi.
5. Hệ thống ghi nhận những thay đổi vào CSDL.
6.2.2.6.2.2 Các dòng sự kiện khác.
6.2.2.6.3 Các yêu cầu đặc biệt
Không có.
6.2.2.6.4 Điều kiện tiên quyết
86
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên.
6.2.2.6.5 Điều kiện kết thúc
Không có.
6.2.2.6.6 Điểm mở rộng
Không có.
6.3 Các lược đồ tuần tự chính
6.3.1 Lược đồ tuần tự “CreateQuestion”
: Teacher : pManagement : pCreateQuestionContainer : pCreateQuestion
: Engine.QuestionController
1: // choose "Create new question"
2: // Get all question types from file xml
3: // show page
4: // choose one type to create
5: // get configuration of chosen type from file xml
6: // load right edit control
7: // show page
8: // input information
11: CreateNewQuestion()
9: OnBtnCreate_Click()
10: BuildXmlContent()
87
6.3.2 Lược đồ tuần tự “ImportQuestionFromMSWord”
: Teacher : pManagement : pImportFromMSWord
: ImportExportEngine.WordEngine : Engine.QuestionController
1: // choose "Import question from MSWord"
2: // show page
3: // choose options for importing
4: OnBtnImport_Click()
5: // read question type information from file xml
6: // load right class for importing
7: // use word automation to get content for importing
8: BuildXmlContent()
9: CreateNewQuestion()
6.4 Các màn hình giao diện chính và hướng dẫn sử dụng
Các chức năng của module soạn thảo này được hỗ trợ cho người dùng ngay
trong trang quản lý ngân hàng câu hỏi.
6.4.1 Chức năng “Soạn thảo nội dung câu hỏi”
6.4.1.1 Màn hình giao diện trên web
Màn hình quản lý ngân hàng câu hỏi có chứa 2 liên kết cho phép giáo viên
soạn thảo câu hỏi mới và cho phép giáo viên import danh sách câu hỏi từ định dạng
file .doc vào ngân hàng câu hỏi được chọn.
Muốn soạn thảo nội dung 1 câu hỏi, trước tiên giáo viên phải chọn loại câu hỏi.
Hình 6-2 Chọn loại câu hỏi trên web
88
Hệ thống sẽ tìm đúng bộ soạn thảo của loại câu hỏi cần tạo.
Hình 6-3 Soạn thảo nội dung một câu hỏi
- Tiêu đề là phần tên của câu hỏi, phần này có thể không cần thiết.
- Câu hỏi là phần nội dung hỏi, đây là phần bắt buộc. Đối với loại câu hỏi điền
vào chỗ trống thì từ khóa [!!!] là ký hiệu chỗ trống.
Ví dụ: Ngày … là ngày Bác Hồ ra đi tìm đường cứu nước.
Thì trong phần “Câu hỏi”, giáo viên sẽ nhập như sau : Ngày [!!!] là
ngày Bác Hồ ra đi tìm đường cứu nước.
- Độ khó của câu hỏi có 5 mức độ là Rất khó, Khó, Vừa phải, Dễ và Rất Dễ.
- Để thêm lựa chọn cho câu hỏi, trước tiên, giáo viên phải nhấn vào nút “Thêm
giải pháp” rồi sau đó giáo viên nhập các nội dung của giải pháp vào ô “Nội
dung”, đánh dấu chọn các tùy chọn, cuối cùng là nhấn nút “Cập nhật” để xác
nhận nội dung vừa nhập vào. Tùy chọn “Đúng” là ghi nhận lựa chọn đó là 1
89
phần hay là cả đáp án. Tùy chọn “Cố định” là ghi nhận lựa chọn đó sẽ không
được thay đổi vị trí trong quá trình xáo trộn thứ tự câu hỏi của đề khi thi.
- Sau khi hoàn tất quá trình soạn thảo, giáo viên nhấn nút “Tạo mới”.
6.4.1.2 Màn hình giao diện trên windows
Giáo viên có thể bắt đầu thực hiện soạn thảo nội dung câu hỏi bằng 2 cách:
Chọn menu Tài liệu Tạo mới Tạo câu hỏi.
Hình 6-4 Menu tạo câu hỏi trên windows
Click chuột phải và chọn trên menu popup Tạo mới Tạo câu hỏi.
Hình 6-5 Context Menu tạo câu hỏi trên windows
90
Giáo viên có thể chọn loại câu hỏi trong danh sách các template câu hỏi.
Hình 6-6 Danh sách các loại câu hỏi trong ứng dụng trên windows
91
6.4.2 Chức năng “Import danh sách câu hỏi từ MS Word”
Trước tiên, giáo viên phải chọn 1 nút trên cây quản lý, khi đó, các câu hỏi mới
được import vào sẽ thuộc ngân hàng câu hỏi được chọn đó.
Hình 6-7 Import danh sách câu hỏi từ MS Word
Giáo viên sẽ nhấn vào nút “Tìm file …” để chỉ đến file .doc chứa các câu hỏi
cần import vào. Lưu ý là file .doc này phải đúng với định dạng được quy định sẵn.
Định dạng file để import được quy định như sau:
[!!!] Nội dung hỏi
<!!!> Nội dung lựa chọn thứ 1 *
<!!!> Nội dung lựa chọn thứ 2
<!!!> Nội dung lựa chọn thứ 3
<!!!> Nội dung lựa chọn thứ 4 *
<!!!> Nội dung lựa chọn thứ 5
Trong đó:
- [!!!] là dấu quy định phân cách các câu hỏi.
- <!!!> là dấu quy định phân cách các lựa chọn.
- * là dấu quy định lựa chọn đúng.
- Số lựa chọn và số lựa chọn đúng là không có giới hạn.
Cuối cùng, giáo viên nhấn nút “Upload” để hệ thống chép file được chỉ định
và truyền lên web, sau đó hệ thống tiến hành đọc file và import dữ liệu vào ngân
hàng câu hỏi.
92
6.4.3 Chức năng “Soạn thảo thông tin section”
6.4.3.1 Màn hình giao diện trên web
Màn hình quản lý section có chứa liên kết cho phép giáo viên soạn thảo thông
tin để tạo ra 1 section mới.
Hình 6-8 Soạn thảo một section trên web
- Tiêu đề là phần tên của section, phần này có thể không cần thiết.
- Ghi chú đầu section hay còn gọi là header là những chỉ dẫn dành cho các thí
sinh được ghi ở phía trên của section.
- Ghi chú cuối section hay còn gọi là footer là những lời dặn dò dành cho các
thí sinh được ghi ở cuối section.
- Cách chọn câu hỏi cũng là cách quy định loại section. Có 2 loại section là :
93
Section có các câu hỏi được phát sinh ngẫu nhiên. Đối với loại section
này thì giáo viên chỉ cần cung cấp 2 thông tin là số câu hỏi trong section
và các câu hỏi trong section sẽ được chọn ra từ ngân hàng câu hỏi nào.
Section có các câu hỏi được chỉ định trước. Đối với loại section này thì
giáo viên phải chọn từng câu hỏi cho section. Các câu hỏi có thể sẽ thuộc
nhiều ngân hàng câu hỏi khác nhau.
- Sau khi hoàn tất quá trình soạn thảo, giáo viên nhấn nút “Tạo mới” để thêm
section vào cơ sở dữ liệu.
6.4.3.2 Màn hình giao diện trên windows
Hình 6-9 Soạn section trên windows
94
6.4.4 Chức năng “Biên tập nội dung section”
Biên tập nội dung section chính là cung cấp các thông tin về câu hỏi cho
section. Có 2 cách chọn câu hỏi cho một section. Cách thứ nhất: người giáo viên
chọn câu hỏi trực tiếp trên danh sách câu hỏi. Cách thứ 2: người giáo viên cần cung
cấp thông tin số câu hỏi và ngân hàng câu hỏi, chương trình sẽ phát sinh ngẫu nhiên.
6.4.4.1 Màn hình giao diện trên web
Chọn trực tiếp câu hỏi cho section trên web:
Giáo viên có thể thực hiện thao tác này bằng cách chọn liên kết “Chọn các câu
hỏi cho section”
Hình 6-10 Chọn trực tiếp câu hỏi cho section trên web
Giáo viên chọn từng ngân hàng câu hỏi trên cây quản lý ngân hàng câu hỏi,
màn hình bên tay phải sẽ hiển thị các câu hỏi trong ngân hàng được chọn cùng tình
trạng của câu hỏi đó trong section. Giáo viên chọn hoặc bỏ chọn từng câu hỏi để
thêm hay bỏ câu hỏi đó trong section.
Sau khi hoàn tất việc chọn trong 1 ngân hàng câu hỏi, giáo viên nhấn vào nút
xác nhận để hệ thống ghi nhớ sự lựa chọn. Sau đó, giáo viên có thể tiếp tục chọn lựa
trong các ngân hàng câu hỏi khác.
95
6.4.4.2 Màn hình giao diện trên windows
Chọn trực tiếp câu hỏi cho section trên windows:
Hình 6-11 Chọn trực tiếp câu hỏi cho section trên windows
96
Chọn ngẫu nhiên trên kho câu hỏi:
Hình 6-12 Chọn kho câu hỏi cho section trên windows
Giáo viên thêm 1 kho câu hỏi vào trong danh sách bằng cách kéo kho câu hỏi đó
vào trong bảng “Danh sách kho câu hỏi”.
Tùy theo loại câu hỏi được chọn bên tay phải mà hệ thống sẽ hiển thị số câu hỏi mà
kho câu hỏi đang được chọn chứa. Giáo viên chọn độ khó câu hỏi và điền vào số
câu hỏi dành cho section. Lưu ý là hệ thống sẽ kiểm tra số câu hỏi giáo viên nhập
vào phải không được lớn hơn số câu hỏi kho chứa.
Giáo viên muốn xem thông tin thống kê số câu hỏi trong kho thì nhấn vào nút “Xem
chi tiết”.
Giáo viên muốn thay đổi số câu hỏi của 1 loại câu hỏi trong 1 kho nào đó thì phải
đảm bảo có nhấn nút “Cập nhật” để hệ thống ghi nhận lại sự thay đổi.
97
6.4.5 Chức năng “Soạn thảo thông tin đề thi”
6.4.5.1 Màn hình giao diện trên web
Hình 6-13 Soạn thảo đề thi trên web
- Tiêu đề là phần tên của đề thi. Ví dụ như là “Bài thi môn Hóa HK1”.
- Ghi chú đầu đề thi hay còn gọi là header là những chỉ dẫn dành cho các thí
sinh được ghi ở phía trên của đề thi.
- Ghi chú cuối đề thi hay còn gọi là footer là những lời dặn dò dành cho các thí
sinh được ghi ở cuối đề thi.
- Điểm đạt là điểm yêu cầu thí sinh phải đạt đến nếu muốn vượt qua kỳ thi.
- Mẫu thể hiện bài thi là chọn template được tạo sẵn dành cho việc thể hiện bài
thi khi thi.
98
- Kết quả bài thi là tùy chọn cho phép sinh viên được xem kết quả ngay sau
khi thi hoặc là sinh viên phải gọi điện đến tổng đài thông báo kết quả của hệ
thống để nghe kết quả thi.
- Sau khi hoàn tất quá trình soạn thảo, giáo viên nhấn nút “Tạo mới” để thêm
đề thi vào cơ sở dữ liệu.
6.4.5.2 Màn hình giao diện trên windows
Hình 6-14 Soạn thảo đề thi trên windows
99
6.4.6 Chức năng “Biên tập nội dung đề thi”
Biên tập nội dung đề thi chính là cung cấp các thông tin về các section cho đề
thi. Đề thi có thể có 1 hay nhiều section.
6.4.6.1 Màn hình giao diện trên web
Giáo viên có thể thực hiện thao tác này bằng cách chọn liên kết “Chọn các
section”.
Hình 6-15 Chọn section cho bài thi trên web
Giáo viên chọn từng section cho đề thi của mình. Quy định là
Nếu chọn section cha thì mặc nhiên các section con cũng sẽ được chọn.
Nếu 1 section được chọn, rồi 1 section con của section đó bị bỏ chọn
thì section cha cũng sẽ không được chọn nữa.
Sau khi hoàn tất việc lựa chọn, giáo viên nhấn vào liên kết “Cập nhật danh
sách section” để hệ thống ghi nhận lại.
100
6.4.6.2 Màn hình giao diện trên windows
Hình 6-16 Chọn section cho bài thi trên windows
101
Chương 7 Module plugin
7.1 Mục đích và vị trí của plugin trong hệ thống
Mục đích của việc plugin là giúp tạo ra một hệ thống linh hoạt và có tính tiến hóa
cao. Nhờ vào sự linh hoạt đó mà người sử dụng bao gồm cả giáo viên, sinh viên và
nhà quản trị có khả năng cấu hình hệ thống một cách linh hoạt tùy theo sở thích.
Các câu hỏi, các thành phần giao diện và các template bài thi có thể được đưa vào
và lấy ra hệ thống một cách dễ dàng, việc mở rộng trở nên đơn giản và nhanh chóng.
Hình 7-1 Minh họa plugin
Trong hệ thống dịch vụ thi cử trực tuyến này, có 3 vị trí cung cấp cơ chế plugin, bao
gồm:
o Plugin câu hỏi: đây là plugin quan trọng nhất, chiếm tỉ lệ lớn trong số
các chức năng và quyết định sự thành bại của hệ thống. Hiện tại, cơ
chế plugin câu hỏi đã hoàn thành và hoạt động tốt, thể hiện qua việc
102
một số loại câu hỏi quan trọng nhất của thi trắc nghiệm đã được
plugin vào và hoạt động tốt.
o Plugin các thành phần giao diện: phần plugin này giúp cho việc sử
dụng trang chủ của ứng dụng web trở nên thân thiện và tiện lợi hơn
khi nó cho phép người dùng có thể tùy biến vị trí các thành phần giao
diện, thêm hay bớt một số nào đó và thông tin cấu hình này sẽ được
lưu lại trong tài khoản của mỗi thành viên.
o Plugin template bài thi: trong cơ chế hiển thị bài thi, hệ thống
ETSONLINE có khả năng load động các template bài thi trong một
thư mục quy ước và theo sự chỉ định của người giáo viên. Khi tạo đề
thi, người giáo viên có thể chỉ định rằng họ muốn dùng template nào
trong số các template đang có mà hệ thống tự động nhận biết và hiển
thị danh sách. Nếu không muốn dùng những template có sẵn, chúng ta
hoàn toàn có thể cung cấp thêm các template mới một cách dễ dàng
bằng cách tạo file template tùy ý theo một số quy ước nhỏ và chép
vào một vị trí đã định trên server.
7.2 Tổ chức một bộ plugin câu hỏi
Một bộ plugin câu hỏi sẽ gồm 2 phần chính:
o Phần plugin cho ứng dụng web.
o Phần plugin cho ứng dụng windows.
Tuy mỗi phần lúc phát triển đều có các file resource, file class, và nhiều file khác,
nhưng khi triển khai plugin gắn 1 bộ câu hỏi mới vào hệ thống, thì chỉ cần cung cấp
các file như sau:
- Phần cho web:
o Chép các file ascx vào thư mục có tên quy ước.
o Chép các file dll vào thư mục bin của web application ETSONLINE.
o Chép các file tài nguyên hình ảnh vào thư mục images trong thư mục
root của web application.
103
o Chép file cấu hình Loai_Cau_Hoi.xml.
- Phần cho windows:
o Chép các file dll vào thư mục chứa file thực thi ETS.exe
o Chép các file tài nguyên hình ảnh vào thư mục images trong thư mục
chứa file ETS.exe.
o Chép file cấu hình Loai_Cau_Hoi.xml.
Hình 7-2 Tổ chức 1 bộ câu hỏi
104
7.3 Plugin template đề thi
Các template thể hiện (mẫu thể hiện) bài thi được nhà quản trị plugin vào hệ
thống. Sau đó, khi người giáo viên tạo đề thi, người giáo viên có thể chọn cho bài
thi của mình một template nào đó. Danh sách template được hệ thống tự động tìm
kiếm và hiển thị lên cho người giáo viên chọn lựa.
Khi hiển thị bài thi, hệ thống sẽ kiểm tra xem bài thi đó dùng template bài thi
nào và tự động load template đó lên, sử dụng cho bài thi đó.
Việc sử dụng template giúp cho các bài thi có thể trình bày theo nhiều phong
cách khác nhau, tùy biến và độc đáo. Hiện tại, hệ thống đang hỗ trợ 3 template:
Default (mặc định), Smoke (sương khói) và Wave (sóng lượn). Tuy nhiên, nhà quản
trị có thể thêm mới một template khác bất cứ lúc nào một cách dễ dàng.
7.3.1 Các bước để tạo một template
o Tạo file HTML template tùy thích.
o Đặt lại tên file là: Testing.aspx.
o Trên đầu file thêm vào dòng chỉ thị: <%@Page language="c#" Codebehind="Testing.aspx.cs"
AutoEventWireup="false" Inherits="ETSONLINE.Testing" %> o Trong phần body của file HTML này, chọn một vị trí muốn đặt các câu hỏi
và đặt thuộc tính cho 1 control ở chỗ đó là: id="MainPlaceHolder" và runat="server".
o Lưu template này vào một thư mục với tên thư mục là tên của template.
o Copy thư mục này vào thư mục AssessmentTemplates của ứng dụng
ETSONLINE.
105
7.3.2 Hình ảnh giao diện:
7.3.2.1 Template mặc định:
Hình 7-3 Template mặc định của bài thi
106
7.3.2.2 Template smoke skin:
Hình 7-4 Template smoke skin
107
7.3.2.3 Template wave skin:
Hình 7-5 Template wave skin
108
7.4 Plugin thành phần giao diện
Các thành phần giao diện được gắn vào hệ thống ETSONLINE dưới dạng
plugin. Nhà quản trị khi muốn trên trang web của mình có thêm một thành phần
giao diện nào đó, chỉ cần thêm vào hệ thống các plugin về các thành phần giao diện
mình cần. Sau đó, các giáo viên và sinh viên khi sử dụng trang web, có thể cấu hình
trang web theo ý mình, cho hiện những gì mình quan tâm và chỉ định vị trí của
chúng mà mình muốn.
Khi hiển thị trang web, ứng dụng sẽ kiểm tra xem người dùng đã đăng nhập
chưa. Nếu chưa đăng nhập thì sẽ load các thành phần giao diện mặc định. Nếu đã
đăng nhập, hệ thống sẽ truy xuất vào cơ sở dữ liệu, lấy về các thông tin cấu hình
của người dùng và load các control giao diện theo như cấu hình người dùng đó đã
chọn trong lần gần đây nhất vào sử dụng trang web.
Hình ảnh các plugin:
Hình 7-6 Chỉnh sửa cấu hình giao diện
109
Hình 7-7 Plugin cột trái
Hình 7-8 Plugin cột phải
110
Hình 7-9 Các plugin hiển thị theo lựa chọn của người dùng
111
Chương 8 Module tổ chức thi cử
8.1 Đặc tả yêu cầu chức năng của module tổ chức thi cử
Trong hệ thống hỗ trợ thi trắc nghiệm trực tuyến, module tổ chức thi phải đảm
nhiệm các chức năng sau đây:
1. Cho phép người dự thi làm một bài thi.
2. Lưu giữ thông tin kết quả thi.
3. Thông báo kết quả thi cho sinh viên qua điện thoại, mail hoặc xem trực
tiếp trên web.
4. Tra cứu danh sách thí sinh thi 1 bài thi nào đó.
5. Tra cứu kết quả thi của 1 bài thi nào đó.
8.2 Mô hình Use-Case
8.2.1 Lược đồ chính của mô hình Use-Case
8.2.1.1 Lược đồ
DoTest Student RequestResult
ViewContestants Teacher ViewMemberResults
Hình 8-1 Sơ đồ Use-Case module thi cử
112
8.2.1.2 Danh sách các Actor
STT Actor Ý nghĩa
1 Teacher Giáo viên
2 Student Sinh viên
Bảng 8-1 Danh sách actor module thi cử
8.2.1.3 Danh sách các Use-Case chính
STT Use-Case Ý nghĩa
1 DoTest Thể hiện bài thi cho sinh viên và chấm
điểm, lưu trữ lại kết quả
2 RequestResult Thông báo kết quả thi cho sinh viên.
3 ViewContestants Xem danh sách sinh viên đăng ký thi 1
bài thi
4 ViewMemberResults Xem kết quả thi của tất cả các sinh
viên đã thi 1 bài thi
Bảng 8-2 Danh sách Use-Case module thi cử
8.2.2 Đặc tả một số Use-Case chính
8.2.2.1 Đặc tả Use-case “DoTest”:
8.2.2.1.1 Tóm tắt:
Use-case này cho phép sinh viên thực hiện thi 1 bài thi.
8.2.2.1.2 Dòng sự kiện:
8.2.2.1.2.1 Dòng sự kiện chính:
1. Use-case bắt đầu khi sinh viên chọn link “Custom tests”.
2. Hệ thống sẽ tìm tất cả các bài thi thuộc quyền quản lý của giáo viên phụ
trách sinh viên đang đăng nhập vào hệ thống.
3. Hệ thống hiển thị danh sách các bài thi tìm được và đang ở trong trạng
thái được phép thi.
113
4. Sinh viên chọn vào 1 link liên kết đến bài thi phải thi.
5. Hệ thống đọc tất cả các thông tin lien quan đến bài thi được chọn.
6. Hệ thống thực hiện việc hiển thị nội dung bài thi.
7. Với mỗi câu hỏi trong bài thi, hệ thống phải tìm xem câu hỏi đó thuộc
loại nào, sau đó đọc file xml cấu hình loại câu hỏi đó để tìm đúng
control xử lý thể hiện để hiển thị cho đúng câu hỏi.
8. Sinh viên bắt đầu thi, hệ thống bắt đầu tính giờ thi.
9. Sau khi làm xong, sinh viên nhấn nút “Finish” hoặc đã hết giờ làm bài,
hệ thống thực hiện công việc chấm điểm.
10. Với mỗi câu hỏi trong bài thi, hệ thống phải tìm xem câu hỏi đó thuộc
loại câu hỏi nào, sau đó đọc file xml cấu hình loại câu hỏi đó để tìm
đúng lớp xử lý chấm điểm và bắt đầu ghi nhận kết quả của câu hỏi đang
chấm.
11. Hệ thống lưu trữ kết quả của tất cả câu hỏi trong bài thi trong một chuỗi
xml và lưu vào CSDL.
12. Hệ thống sẽ dựa vào yêu cầu của giáo viên đối với bài thi mà cho phép
sinh viên xem kết quả ngay hay phải gọi điện thoại đến số điện thoại
thông báo kết quả thi của hệ thống.
13. Nếu giáo viên đồng ý cho xem kết quả ngay lập tức, hệ thống sẽ hiển
thị 1 liên kết đến trang kết quả thi của sinh viên vừa thi.
14. Sinh viên chọn vào đường link để xem kết quả.
15. Hệ thống đọc trong CSDL chuỗi xml lưu kết quả vừa thi.
16. Hệ thống đọc chuỗi xml và hiển thị kết quả cho sinh viên.
8.2.2.1.2.2 Các dòng sự kiện khác:
Sinh viên không được xem kết quả sau khi thi
Use-case ngừng.
8.2.2.1.3 Các yêu cầu đặc biệt:
Không có.
114
8.2.2.1.4 Điều kiện tiên quyết:
Người dùng phải đăng nhập thành công vào hệ thống với quyền sinh viên.
8.2.2.1.5 Điều kiện kết thúc:
Không có.
8.2.2.1.6 Điểm mở rộng:
Không có.
8.2.2.2 Đặc tả Use-case “RequestResult”:
8.2.2.2.1 Tóm tắt:
Use-case này cho phép sinh viên yêu cầu được biết kết quả của 1 bài thi mà
sinh viên này đã làm.
8.2.2.2.2 Dòng sự kiện:
8.2.2.2.2.1 Dòng sự kiện chính:
1. Use-case bắt đầu khi sinh viên gọi đến số điện thoại thông báo kết quả
của hệ thống.
2. Hệ thống sẽ yêu cầu sinh viên nhập vào tên tài khoản và ngày thi.
3. Hệ thống sẽ tìm tất cả các bài thi mà sinh viên đó đã thi trong ngày yêu
cầu.
4. Hệ thống sẽ thông báo cho sinh viên tên tất cả các bài thi tìm được theo
thứ tự thời gian.
5. Sinh viên nhập vào số thứ tự của bài thi muốn biết kết quả.
6. Hệ thống thông báo kết quả của bài thi cho sinh viên.
8.2.2.2.2.2 Các dòng sự kiện khác:
Sinh viên nhập tên tài khoản không đúng
Hệ thống thông báo là tên tài khoản không hợp lệ.
Sinh viên nhập ngày thi không đúng
115
Hệ thống sẽ thông báo là trong ngày đó sinh viên không thực hiện bài
thi nào cả.
Sinh viên chọn số thứ tự bài thi vượt ra khỏi khoảng cho phép
Hệ thống sẽ yêu cầu sinh viên chọn lại, cho đến khi sinh viên chọn
đúng hoặc nhập ký hiệu kết thúc.
8.2.2.2.3 Các yêu cầu đặc biệt:
Không có.
8.2.2.2.4 Điều kiện tiên quyết:
Không có.
8.2.2.2.5 Điều kiện kết thúc:
Không có.
8.2.2.2.6 Điểm mở rộng:
Không có.
8.2.2.3 Đặc tả Use-Case “ViewMemberResults”
8.2.2.3.1 Tóm tắt
Use-case này cho phép người dùng xem kết quả thi của các sinh viên đã thi 1
bài thi nào đó.
8.2.2.3.2 Dòng sự kiện
8.2.2.3.2.1 Dòng sự kiện chính
1. Use-case này bắt đầu khi người dùng chọn yêu cầu “View all member
‘s results”.
2. Hệ thống ghi nhận lại đề thi nào được yêu cầu xem kết quả thi.
3. Hệ thống đọc trong cơ sở dữ liệu các sinh viên nào đã thi bài thi đó.
4. Hệ thống lấy kết quả thi bài thi đó của từng sinh viên trong danh sách
đọc được.
116
5. Hệ thống phân tích chuỗi kết quả của các thí sinh (chuỗi kết quả được
lưu dưới dạng xml).
6. Hệ thống mở ra trang mới hiển thị danh sách thí sinh cùng kết quả chi
tiết bài thi.
8.2.2.3.2.2 Các dòng sự kiện khác
Không có.
8.2.2.3.3 Các yêu cầu đặc biệt
Không có.
8.2.2.3.4 Điều kiện tiên quyết
Người dùng phải đăng nhập thành công vào hệ thống với quyền giáo viên hoặc
người quản trị.
8.2.2.3.5 Điều kiện kết thúc
Không có.
8.2.2.3.6 Điểm mở rộng
Không có.
117
8.3 Các lược đồ tuần tự chính 8.3.1 Lược đồ tuần tự “DoTest”
: Student : pManagement : pTesting
: Engine.AssessmentController : Engine.SectionController : Engine.QuestionController
1: // choose "Custom Tests"
2: // show list assessments
3: // choose assessment
4: // show page
5: GetAssessmentById()
6: GetAllSectionsInAssessment()
7: GetAllQuestionsInSection()
8: // read question type information from file xml in order to load right view control to show question
9: // do test
10: // finish
11: OnBtnFinish_Click()
118
8.3.2 Lược đồ tuần tự “RequestResult”
8.3.3 Lược đồ tuần tự “ViewMemberResults”
8.4 Giao diện và hướng dẫn sử dụng
8.4.1 Sơ đồ màn hình giao diện
Hình 8-2 Sơ đồ các màn hình giao diện module thi cử
8.4.2 Chức năng thi
Thí sinh sau khi chọn chức năng “Thi” thì màn hình sẽ hiển thị danh sách các
bài thi thuộc quyền quản lý của giáo viên phụ trách thí sinh đó.
Thí sinh chọn 1 bài thi muốn thi. Màn hình sẽ hiển thị nội dung đầy đủ của bài
thi được chọn. Thí sinh thao tác trả lời trực tiếp trên trang màn hình này. Sau khi
hoàn tất bài thi, thí sinh sẽ nhấn vào nút “Hoàn thành” để thông báo cho hệ thống
biết. Nếu thí sinh chưa hoàn thành bài thi nhưng đã hết giờ thi thì hệ thống cũng sẽ
tự động xử lý tương tự như khi thí sinh nhấn vào nút “Hoàn thành”.
119
Sau khi thi xong, tùy theo yêu cầu của giáo viên mà thí sinh sẽ được phép xem
kết quả thi ngay hay phải gọi điện thoại đến hộp thư thoại thông báo kết quả thi của
hệ thống.
Hình 8-3 Hình ảnh một bài thi
8.4.3 Chức năng tra cứu danh sách thí sinh và kết quả bài thi
Chức năng này được hỗ trợ thêm cho giáo viên trong trang quản lý chung của
các bài thi. Mỗi bài thi đều có 1 liên kết để tra cứu danh sách thí sinh đã đăng ký thi
và 1 liên kết để xem kết quả của tất cả các thí sinh đã thi bài thi được chọn.
120
Hình 8-4 Danh sách thí sinh đã thi
Hình 8-5 Kết quả thi một bài thi nào đó của các thí sinh
121
Hình 8-6 Thông tin thống kê tình hình điểm số của một bài thi
122
Chương 9 Các kỹ thuật bổ sung
9.1 Kỹ thuật thiết kế web application linh động và load động user control
Bình thường, khi thiết kế web, đa phần trong chúng ta đều thiết kế theo kiểu:
mỗi khi cần một trang web, chúng ta tạo ra một file aspx. Đó thật sự là một trang
web. Tuy nhiên, giả sử khi chúng ta cần thay đổi style của cả website thì sao!. Lúc
ấy, chúng ta phải đi đến từng trang aspx, sửa những vị trí màu sắc, font chữ trực
tiếp hoặc trong các style được định nghĩa, hoặc ít nhất thì cũng phải là sửa đường
dẫn đến file định kiểu css.
Như vậy, cách thiết kế như vậy tỏ ra có nhiều bất tiện và tiêu tốn rất nhiều thời gian.
Thay vào đó, chúng ta nên thiết kế theo hướng sau:
o Cả website sẽ chỉ có một vài trang web thật sự, tức là chỉ có 3 hay 4 trang
aspx thật sự mà thôi. Các trang web này sẽ đóng vai trò là các cổng vào
trung tâm cho trang web.
o Mỗi khi thêm một chức năng gì có cần đến việc thêm một trang web, thay vì
thêm vào một trang web thật sự, chúng ta thêm vào một user control.
o Trên trang web thật, trong liên kết đến chức năng này, chúng ta để nó liên
kết đến chính nó với tham số module là chỉ đến user control chúng ta cần.
o Sau đó, chúng ta sẽ thực hiện việc load động các user control này. Nếu user
control này là một phần của project đang thực hiện, chúng ta chỉ việc dùng
lệnh LoadControl và truyền vào đường dẫn đến file ascx (file user control)
mà ta cần. Nếu user control này được phát triển trong một project khác,
ngoài việc trên, chúng ta còn cần chép file dll xử lý (nếu có) của user control
vào thư mục bin của ứng dụng web.
o Sau khi gọi hàm LoadControl, chúng ta được trả về một đối tượng Control.
o Trong trang web aspx, ta có thể dùng một đối tượng nào đó làm place holder,
thông thường là một cell của một table. Cell này được đặt thuộc tính là
runat=server và id=”tên place holder”, giả sử được đặt là placeHolder.
123
o Khi lấy được đối tượng Control rồi, ta gọi tiếp lệnh:
placeHolder.Controls.Add (myControl);
o Như vậy, ta đã hoàn thành việc load động các control vào website của chúng
ta thông qua trang web với vai trò là cổng thông tin.
Code minh họa: string module = Request.QueryString["module"]; string filename = "UserControls/"; switch(module) { case "news": filename += "NewsListContainer.ascx"; break; case "createnews": filename += "CreateNews.ascx"; break; case "viewnewsdetail": filename += "NewsDetail.ascx"; break; case "sampletest": filename += "ViewSampleQuestion.ascx"; break; case "testlist": filename += "CustomTestList.ascx"; break; case "configui": filename += "ConfigUI.ascx"; break; default: filename += "DefaultControlPage.ascx"; break; } UserControl ctrl = (UserControl)LoadControl(filename); MainPlaceHolder.Controls.Clear(); MainPlaceHolder.Controls.Add(ctrl);
124
9.2 Kỹ thuật automation Microsoft Word
9.2.1 Giới thiệu
Automation là kỹ thuật cho phép tận dụng các tính năng của 1 ứng dụng có sẵn và
tích hợp vào trong chương trình của mình.
Hệ thống của chúng em đòi hỏi phải kết xuất các đề thi ra file để phục vụ cho yêu
cầu thi trên giấy, cũng như phải nhập được dữ liệu câu hỏi từ các định dạng file để
tận dụng ngân hàng đề thi đã có từ trước đến nay.
Theo nhận xét thì định dạng file .doc và file .pdf là phổ biến nhất hiện nay cho việc
lưu trữ ngân hàng đề thi, tuy nhiên đã có nhiều chương trình hỗ trợ cho việc chuyển
qua lại giữa 2 định dạng file này. Thêm nữa, file .doc có thể dễ dàng được tạo ra vì
MS Word là trình soạn thảo văn bản rất thân thiện, phổ biến. Vì vậy, chúng em
quyết định sử dụng kỹ thuật automation để automate MS Word nhằm sử dụng trực
tiếp các tính năng có sẵn của Word phục vụ cho yêu cầu nhập xuất/kết xuất ngân
hàng đề thi, câu hỏi của hệ thống.
9.2.2 Các đối tượng trong MS Word
Hình 9-1 Sơ đồ quan hệ của các đối tượng của MS Word
125
- Application chính là ứng dụng MS Word đang được gọi thực thi.
- Document là đại diện cho các văn bản Word đang quản lý. Khi mở hay tạo 1
văn bản mới chính là tạo nên 1 đối tượng document và thêm đối tượng này
vào tập hợp các document của application hiện hành. Văn bản đang được
trực tiếp xử lý là active document.
- Selection đại diện cho vùng văn bản đang được chọn. Khi không có gì được
chọn thì selection chính là vị trí con trỏ. Selection có thể bao gồm nhiều
vùng văn bản không liên tiếp nhau.
- Range đại diện cho 1 vùng văn bản liên tục được xác định bởi ký tự bắt đầu
và ký tự kết thúc vùng văn bản. 1 document có thể được chứa nhiều range.
Range có thể:
Chỉ chứa duy nhất vị trí con trỏ (điểm chèn) hay 1 đoạn văn bản hay toàn
bộ document.
Gồm cả các ký tự không in được như là khoảng trắng, khoảng tab, dấu
phân cách đoạn văn bản …
Chỉ tồn tại khi đoạn code tạo ra nó đang được thực thi.
- Bookmark cũng đại diện cho 1 vùng văn bản liên tục, được sử dụng để đánh
dấu vị trí. Bookmark có thể chỉ là 1 điểm chèn, mà cũng có thể là toàn bộ
văn bản. Bookmark có các đặc điểm sau:
Có thể có tên.
Được lưu cùng với document.
Mặc định là được ẩn đi.
9.2.3 Ngôn ngữ VBA (Microsoft Visual Basic for Applications)
Tất cả các ứng dụng của Microsoft Office đều có ngôn ngữ script của nó, đó
chính là VBA. Ngôn ngữ này có thể được sử dụng để thực hiện các nhiệm vụ trong
ứng dụng. Nói 1 cách dễ hiểu thì tất cả các thao tác trên ứng dụng thông qua thanh
menu và bàn phím đều có thể được diễn tả lại bằng ngôn ngữ này. Vì vậy, có 1 cách
giúp cho người chưa quen với đối tượng của MS Word xác định được các công việc
126
phải làm khi thực hiện automation là sử dụng các macro của chính MS Word ghi lại
các thao tác muốn automate.
Ví dụ bạn muốn automate MS Word để tạo 1 file mới, gõ vào 1 đoạn text rồi
lưu lại nhưng bạn không biết phải sử dụng các hàm nào. Bạn có thể thông qua các
macro để biết được điều đó.
Trước tiên, bạn phải ghi lại 1 macro mới.
Hình 9-2 Record macro trong MS Word
Sau đó, bạn thực hiện các thao tác muốn automate rồi dừng việc ghi macro lại.
Và cuối cùng, bạn chỉ việc xem MS Word đã thao tác như thế nào thông qua macro
vừa ghi được.
127
Hình 9-3 Edit macro trong MS Word
Hình 9-4 Kết quả edit macro trong MS Word
128
9.2.4 Ứng dụng trong hệ thống
Để có thể thực hiện automation, trước tiên phải cho phép chương trình tham
chiếu đến thư viện xử lý của Word.
Hình 9-5 Add reference đến Word Object Library trong .NET
9.2.4.1 Import
Thao tác import trong hệ thống cần phải xử lý cả việc import hình ảnh. Mà
như đã biết, các hình ảnh được chèn vào trong file .doc thì sẽ được lưu cùng với
file .doc đó. Do vậy, để lấy được hình cụ thể, chúng em phải tiến hành lưu tạm
file .doc dưới dạng trang web, rồi tìm trong source của trang web liên kết đến hình
ảnh cụ thể để copy lưu vào trong cơ sở dữ liệu. Object missing = System.Reflection.Missing.Value; object saveFileName = uniqueFileName; object fileFormat = Word.WdSaveFormat.wdFormatHTML; // Luu vao file tam duoi dang html wordApp.ActiveDocument.SaveAs( ref saveFileName, ref fileFormat, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
129
wordApp.ActiveDocument.Close(ref missing, ref missing, ref missing); StreamReader r = new StreamReader(uniqueFileName); string str = r.ReadToEnd(); r.Close(); int n1 = str.IndexOf("<body"); char tempChar = '<'; while(tempChar != '>') { tempChar = str[n1]; n1++; } int n2 = str.IndexOf("</body>"); string strFinal = str.Substring(n1, n2 - n1);
Dựa vào các dấu phân cách quy định sẵn, chúng em sẽ tách được nội dung các
câu hỏi, và trong mỗi câu hỏi sẽ lọc ra được đâu là nội dung hỏi và đâu ra nội dung
các lựa chọn (đơn thuần chỉ là thao tác xử lý chuỗi). Cụ thể, một câu hỏi trong file
muốn import phải có định dạng như sau:
[!!!] Nội dung hỏi
<!!!> Nội dung lựa chọn thứ 1 *
<!!!> Nội dung lựa chọn thứ 2
<!!!> Nội dung lựa chọn thứ 3
<!!!> Nội dung lựa chọn thứ 4 *
<!!!> Nội dung lựa chọn thứ 5
Trong đó:
- [!!!] là dấu quy định phân cách các câu hỏi.
- <!!!> là dấu quy định phân cách các lựa chọn.
- * là dấu quy định lựa chọn đúng.
- Số lựa chọn và số lựa chọn đúng là không có giới hạn.
Thông tin nội dung câu hỏi lấy được sẽ được sử dụng để xây dựng thành chuỗi
xml và lưu vào CSDL.
130
9.2.4.2 Export
Hệ thống hỗ trợ việc export 1 đề thi ra file .doc theo 1 template đề thi có sẵn.
Template đề thi được tạo ra theo ý thích của các giáo viên và được copy vào trong
thư mục WordFile Temlates của hệ thống. 1 template đề thi phải đáp ứng các yêu
cầu sau:
- Có 1 bookmark có tên là assName đặt tại vị trí giáo viên muốn hiển thị tên
bài thi.
- Có 1 bookmark có tên là assHeader đặt tại vị trí giáo viên muốn hiển thị các
ghi chú đầu bài thi (header)
- Có 1 bookmark có tên là assFooter đặt tại vị trí giáo viên muốn hiển thị các
ghi chú cuối bài thi (footer)
- Có 1 bookmark có tên là assSections đặt tại vị trí giáo viên muốn bắt đầu
hiển thị các section, các câu hỏi của bài thi.
- Phần nào giáo viên không muốn hiển thị thì bookmark đánh dấu phần đó
không cần phải được tạo ra.
Khi có yêu cầu export 1 đề thi ra file, chương trình sẽ tìm vị trí các bookmark,
nếu bookmark tồn tại trong file template được chọn thì chương trình sẽ ghi đoạn
văn bản phù hợp vào vị trí bookmark đó. foreach (Word.Bookmark brm in privateWordApp.ActiveDocument.Bookmarks) if (brm.Name == "assHeader") ReplaceBookmarkText("assHeader", privateAssessment.HeaderNote);
Trường hợp đoạn văn bản cần ghi có chứa tag image (tức là phải chèn 1 hình
vào file) thì chương trình sẽ thực hiện thêm 1 đối tượng Word.Shape vào tập hợp
hình ảnh mà văn bản đang được xử lý quản lý. Khi lưu văn bản, các hình ảnh cũng
sẽ được lưu trữ theo. private void TypeString(Word.ApplicationClass privateWordApp, string strText) { int pos = strText.IndexOf("<img"); while (pos >= 0) { privateWordApp.Selection.TypeText(strText.Substring(0, pos)); strText = strText.Remove(0, pos);
131
pos = strText.IndexOf("src="); strText.Remove(0, pos+1); pos = strText.IndexOf("\""); string image = strText.Substring(0, pos); Object oFalse = false; Object oTrue = true; Object oMissing = Type.Missing; // them 1 hinh anh vao tap hop InlineShapes privateWordApp.Selection.InlineShapes.AddPicture(image, ref oFalse, ref oTrue, ref oMissing); pos = strText.IndexOf("/img>"); strText.Remove(0, pos); pos = strText.IndexOf("<img"); } privateWordApp.Selection.TypeText(strText); }
132
Chương 10 Tổng kết
10.1 Kết luận
Sau thời gian nghiên cứu, tìm hiểu các hình thức trắc nghiệm và phát triển ứng
dụng, đề tài đã đạt được các mục tiêu sau:
o Xây dựng được một cổng dịch vụ thi cử là một hệ thống liên hoàn phối
hợp nhuần nhuyễn giữa môi trường web và windows trong việc quản lý
ngân hàng câu hỏi, đề thi và tổ chức thi trắc nghiệm.
o Có một khung ứng dụng (framework) hết sức linh động, có tính tiến hóa
cao giúp cho việc mở rộng và nâng cấp hệ thống thật sự dễ dàng và hiệu
quả.
o Xây dựng được các ứng dụng trên web và trên windows tiện dụng, ổn
định và nhiều tính năng hữu ích, có thể ứng dụng được ngay trong thực tế
trong việc soạn câu hỏi, đề thi trắc nghiệm và thực hiện việc đánh giá,
kiểm tra nhanh chóng.
o Cấu trúc câu hỏi trắc nghiệm tuân theo đặc tả IMSQTI – một đặc tả XML,
là đặc tả quốc tế được sử dụng rộng rãi nhất trên thế giới. Nhờ đó, cơ sở
dữ liệu ngân hàng câu hỏi của hệ thống có khả năng trao đổi, có thể phân
phối hay sử dụng lại ở bất cứ hệ thống nào khác trên thế giới có sử dụng
đặc tả này.
10.2 Hướng phát triển
Thêm nhiều loại câu hỏi thêm nữa
Hỗ trợ thêm nhiều phiên bản khác nhau cho từng loại câu hỏi
Hoàn thiện thêm các chức năng giúp thuận tiện hơn cho người sử dụng
133
Phuï luïc A - Export database theo đặc tả IMSQTI
Nội dung file XSLT làm nhiệm vụ export:
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:template match="@*|node()"> <xsl:apply-templates select="*" /> </xsl:template> <xsl:template match="assessmentItem"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="responseDeclaration"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="responseDeclaration/node() | responseDeclaration/text() | responseDeclaration/node()/node() | responseDeclaration/text()/node()"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="outcomeDeclaration"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="itemBody"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="itemBody/node() | itemBody/text() | itemBody/node()/node() | itemBody/node()/text()"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy>
134
</xsl:template> <xsl:template match="itemBody/questionView"> </xsl:template> <xsl:template match="responseProcessing"> <xsl:copy> <xsl:apply-templates select="@* | text() | node()" /> </xsl:copy> </xsl:template> <xsl:template match="@*"> <xsl:copy> <xsl:apply-templates select="*" /> </xsl:copy> </xsl:template> <xsl:template match="text()"> <xsl:copy> <xsl:apply-templates select="*" /> </xsl:copy> </xsl:template> </xsl:stylesheet>
135
Phuï luïc B - Phần lưu trữ XML của một số dạng câu hỏi trong đặc tả IMSQTI
o Câu hỏi inlineChoiceInteraction:
<?xml version="1.0" encoding="UTF-8"?> <assessmentItem identifier="choiceMultiple" title="Composition of Water" adaptive="false" timeDependent="false"> <responseDeclaration identifier="RESPONSE" cardinality="multiple" baseType="identifier"> <correctResponse> <value>H</value> <value>O</value> </correctResponse> <mapping lowerBound="0" upperBound="2" defaultValue="-2"> <mapEntry mapKey="H" mappedValue="1"/> <mapEntry mapKey="O" mappedValue="1"/> <mapEntry mapKey="Cl" mappedValue="-1"/> </mapping> </responseDeclaration> <outcomeDeclaration identifier="SCORE" cardinality="single" baseType="integer"/> <itemBody> <choiceInteraction responseIdentifier="MR01" shuffle="true" maxChoices="4"> <prompt>Which of the following elements are used to form water?</prompt> <simpleChoice identifier="H" fixed="false">Hydrogen</simpleChoice> <simpleChoice identifier="He" fixed="false">Helium</simpleChoice> <simpleChoice identifier="C" fixed="false">Carbon</simpleChoice> <simpleChoice identifier="O" fixed="false">Oxygen</simpleChoice> <simpleChoice identifier="N" fixed="false">Nitrogen</simpleChoice> <simpleChoice identifier="Cl" fixed="false">Chlorine</simpleChoice> </choiceInteraction> </itemBody> <responseProcessing template="http://www.imsglobal.org/xml/imsqti_item_v2p0/rpMapResponse" templateLocation="../RPTemplates/rpMapResponse.xml"/> </assessmentItem>
136
o Câu hỏi textEntryInteraction:
<?xml version="1.0" encoding="UTF-8"?> <assessmentItem identifier="textEntry" title="Richard III (Take 3)" adaptive="false" timeDependent="false"> <responseDeclaration identifier="RESPONSE" cardinality="single" baseType="string"> <correctResponse> <value>York</value> </correctResponse> <mapping defaultValue="0"> <mapEntry mapKey="York" mappedValue="1"/> <mapEntry mapKey="york" mappedValue="0.5"/> </mapping> </responseDeclaration> <outcomeDeclaration identifier="SCORE" cardinality="single" baseType="float"/> <itemBody> <p>Identify the missing word in this famous quote from Shakespeare's Richard III.</p> <blockquote> <p>Now is the winter of our discontent<br/> Made glorious summer by this sun of <textEntryInteraction responseIdentifier="RESPONSE" expectedLength="15"/>;<br/> And all the clouds that lour'd upon our house<br/> In the deep bosom of the ocean buried.</p> </blockquote> </itemBody> <responseProcessing template="http://www.imsglobal.org/xml/imsqti_item_v2p0/rpMapResponse" templateLocation="../RPTemplates/rpMapResponse.xml"/> </assessmentItem>
137
o Câu hỏi orderInteraction:
<?xml version="1.0" encoding="UTF-8"?> <assessmentItem identifier="order" title="Grand Prix of Bahrain" adaptive="false" timeDependent="false"> <responseDeclaration identifier="RESPONSE" cardinality="ordered" baseType="identifier"> <correctResponse> <value>DriverC</value> <value>DriverA</value> <value>DriverB</value> </correctResponse> </responseDeclaration> <outcomeDeclaration identifier="SCORE" cardinality="single" baseType="integer"/> <itemBody> <orderInteraction responseIdentifier="RESPONSE" shuffle="true"> <prompt>The following F1 drivers finished on the podium in the first ever Grand Prix of Bahrain. Can you rearrange them into the correct finishing order?</prompt> <simpleChoice identifier="DriverA">Rubens Barrichello</simpleChoice> <simpleChoice identifier="DriverB">Jenson Button</simpleChoice> <simpleChoice identifier="DriverC">Michael Schumacher</simpleChoice> </orderInteraction> </itemBody> <responseProcessing template="http://www.imsglobal.org/xml/imsqti_item_v2p0/rpMatchCorrect" templateLocation="../RPTemplates/rpMatchCorrect.xml"/> </assessmentItem>
138
TÀI LIỆU THAM KHẢO [1] www.msdn.microsoft.com
[2] www.imsglobal.org
[3] www.el.edu.net.vn
[4] www.codeproject.com
[5] www.dnzone.com
[6] www.asp.net
[7] www.w3.org