Tải bản đầy đủ (.pdf) (15 trang)

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 -9 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (682.15 KB, 15 trang )









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);

×