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

Phân tích thiết kế và xây dựng chương trình quản lý thi trắc nghiệm cho trường PTTH quỳnh côi – thái bình

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 (1.87 MB, 70 trang )

MỤC LỤC

LỜI CẢM ƠN ...............................................................Error! Bookmark not defined.
LỜI CAM ĐOAN .........................................................Error! Bookmark not defined.
MỤC LỤC ....................................................................................................................1
MỞ ĐẦU ......................................................................................................................4
CHƯƠNG 1 ..................................................................................................................5
TỔNG QUAN VỀ PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG VÀ NGÔN NGỮ MÔ
HÌNH HÓA THỐNG NHẤT UML ...............................................................................5
1.1. Tổng quan về phương pháp hướng đối tượng. ................................................5
1.1.1.
Đối tượng...............................................................................................5
1.1.2.
Lớp đối tượng ........................................................................................6
1.1.3.
Thuộc tính (property) .............................................................................7
1.1.4.
Phương thức (Method) ...........................................................................7
1.1.5.
Trừu tượng hoá dữ liệu...........................................................................7
1.1.6.
Bao bọc và che giấu thông tin................................................................8
1.1.7.
Sự mở rộng, kế thừa giữa các lớp ...........................................................8
1.1.8.
Đa xạ (tương ứng bội) và nạp chồng.......................................................9
1.1.9.
Liên kết động .........................................................................................9
1.1.10. Truyền thông điệp ..................................................................................9
1.1.11. Ưu điểm chính của phương pháp hướng đối tượng .................................9
1.2. Tổng quan về phân tích thiết kế hướng đối tượng.........................................10


1.2.1.
Phân tích hướng đối tượng ...................................................................10
1.2.2.
Thiết kế hướng đối tượng .....................................................................11
1.3. Tổng quan về ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling
Language) ...............................................................................................................12
1.3.1.
Sơ lược về mốc lịch sử phát triển..........................................................12
1.3.2.
Các ưu điểm chính của UML................................................................13
1.3.3.
Các mô hình biểu đồ.............................................................................18
CHƯƠNG 2 ................................................................................................................21
PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG CHO HỆ THỐNG QUẢN LÝ THI
TRẮC NGHIỆM CHO TRƯỜNG THPT ....................................................................21
QUỲNH CÔI – QUỲNH PHỤ - THÁI BÌNH .............................................................21
2.1. Pha khởi đầu (khảo sát hệ thống)..................................................................22
2.1.1.
Quy trình tổ chức thi trắc nghiệm .........................................................22
2.1.1.1. Tạo nội dung môn học và đề thi........................................................22
2.1.1.2. Cấp password để học sinh dự thi.........................................................23
2.1.1.3. Tổ chức thi .........................................................................................23
2.1.1.4. Chấm điểm.........................................................................................24
2.1.2. Mô tả chương trình thi trắc nghiệm ...........................................................26
2.1.3. Pha triển khai (phân tích hệ thống) ............................................................26
2.2. Biểu đồ UC (Use Case – Trường hợp sử dụng).............................................27
2.2.1.
Đặc tả các ca sử dụng liên quan đến tác nhân “Quan tri he thong” ........29

1



2.2.1.1. Ca sử dụng “Dang nhap he thong” ....................................................29
2.2.1.2. Ca sử dụng “Doi mat khau” ..............................................................30
2.2.1.3. Ca sử dụng “Quan ly cac tai khoan” .................................................31
2.2.1.4. Ca sử dụng “Cham thi”.....................................................................31
2.2.2.
Đặc tả các ca sử dụng liên quan đến tác nhân “Giao vien ra de” ...........32
2.2.2.1. Ca sử dụng “Tao de thi” ...................................................................33
2.2.2.2. Ca sử dụng “Thiet lap de thi”............................................................34
2.2.3.
Đặc tả các ca sử dụng liên quan đến tác nhân “Giao vu khoa” ..............35
2.2.3.1. Ca sử dụng “Cap nhat khoa hoc” ......................................................35
2.2.3.2. Ca sử dụng “Cap nhat lop hoc”.........................................................36
2.2.3.3. Ca sử dụng “Cap nhat môn hoc”.......................................................37
2.2.3.4. Ca sử dụng “Cap nhat hoc sinh” .......................................................37
2.2.3.5. Ca sử dụng “Cap nhat nhom thi” ......................................................38
2.2.4.
Đặc tả các ca sử dụng liên quan đến tác nhân “Hoc sinh” .....................40
2.2.4.1. Ca sử dụng “Dang nhap he thong” ....................................................40
2.2.4.2. Ca sử dụng “Thuc hien lam bai thi” ..................................................41
2.2.4.3. Ca sử dụng “Kiem tra thoi gian lam bai” ..........................................41
2.2.4.4. Ca sử dụng “Xem ket qua thi” ..........................................................42
2.3. Biểu đồ trình tự............................................................................................42
2.3.1.
Biểu đồ trình tự liên quan đến tác nhân “Quan tri he thong” .................42
2.3.1.1. Biểu đồ trình tự mô tả ca sử dụng “Dang nhap he thong”..................42
2.3.1.2. Biểu đồ trình tự mô tả ca sử dụng “Quan ly cac tai khoan” ...............43
2.3.1.3. Biểu đồ trình tự mô tả ca sử dụng “Cham thi”...................................44
2.3.2.

Biểu đồ trình tự liên quan đến tác nhân “Hoc sinh” ..............................45
2.3.2.1. Biểu đồ trình tự mô tả ca sử dụng “Dang nhap he thong”..................45
2.3.2.2. Biểu đồ trình tự mô tả ca sử dụng “Thuc hien lam bai thi” ................46
2.3.2.3. Biểu đồ trình tự mô tả ca sử dụng “Xem ket qua” .............................47
2.3.3.
Biểu đồ trình tự liên quan đến tác nhân “giao vien ra de”......................47
2.3.3.1. Biểu đồ trình tự mô tả ca sử dụng “Tao de thi” .................................47
2.3.3.2. Biểu đồ trình tự mô tả ca sử dụng “Thiet lap de thi"..........................48
2.3.4.
Biểu đồ trình tự liên quan đến tác nhân “truong bo mon”......................49
2.3.5.
Biểu đồ trình tự liên quan đến tác nhân “giao vu khoa” ........................50
2.3.5.1. Biểu đồ trình tự mô tả ca sử dụng “Cap nhat khoa hoc” ....................50
2.3.5.2 . Biểu đồ trình tự mô tả ca sử dụng “Cap nhat lop hoc”....................51
2.3.5.2. Biểu đồ trình tự mô tả ca sử dụng “Cap nhat mon hoc”.....................52
2.3.5.3. Biểu đồ trình tự mô tả ca sử dụng “Cập nhật học sinh” .....................54
2.4. Biểu đồ trạng thái.........................................................................................55
2.4.1.
Biểu đồ trạng thái quá trình thực hiện thi của học sinh..........................55
2.4.2.
Biểu đồ trạng thái quá trình thiết lập đề thi của giáo viên ra đề .............55
2.4.3.
Biểu đồ trạng thái của quản trị hệ thống................................................55
2.5.
Biểu đồ lớp thực thể .............................................................................56
2.6.
Biểu đồ lớp phân tích ...........................................................................56
2.6.1.
Đăng nhập hệ thống..........................................................................57
2.6.2.

Quản trị hệ thống thực hiện quản lý tài khoản...................................57
2.6.3.
Cập nhật khóa học ............................................................................57
2.6.3
Cập nhật môn thi ..............................................................................58
2.6.4.
Cập nhật lớp học ..............................................................................58
2


2.6.5.
Cập nhật học sinh .............................................................................58
2.6.6.
Cập nhật câu hỏi thi..........................................................................59
2.6.7.
Quản trị hệ thống thực hiện chấm thi ................................................59
2.6.8.
Học sinh thực hiện làm bài thi ..........................................................59
2.6.9.
Xem kết quả thi ................................................................................60
CHƯƠNG 3 ................................................................................................................61
THIẾT KẾ CÀI ĐẶT CHƯƠNG TRÌNH....................................................................61
3.1. Giới thiệu bài toán .......................................................................................61
3.2. Thiết kế giao diện chương trình....................................................................61
KẾT LUẬN.................................................................................................................68
TÀI LIỆU THAM KHẢO ...........................................................................................69

3



MỞ ĐẦU
Với sự phát triển của công nghệ phần mềm, nhiều công cụ lập trình đã
được phát triển và có khả năng hỗ trợ mạnh cho người sử dụng. Khi triển khai tin
học hóa các bài toán trong thực tế, chúng ta không còn gặp nhiều khó khăn ở
khâu viết chương trình mà vấn đề chính là ở khâu thực hiện phân tích, thiết kế hệ
thông cho bài toán đó. Phương pháp phân tích, thiết kế hướng đối tượng giúp
chúng ta hiểu rõ những công việc phải làm, những yêu cầu thực tế về số liệu cần
phải đáp ứng, và trên cơ sở xây dựng các mô hình cần thiết để mô tả mối tương
quan giữa các thành phần trong hệ thống. Từ đó dễ dàng hơn rất nhiều trong việc
triển khai lập trình cũng như bảo trì, nâng cấp cho hệ thống hoạt động tốt, đáp
ứng các yêu cầu hoặc thay đổi của người sử dụng.
Hiện nay, ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling
language - UML) được tổ chức OMG (Object Management Group) công nhận là
chuẩn công nghiệp đã trở thành công cụ phổ dụng và hữu hiệu cho phương pháp
mới này.
Cùng với việc phát triển của công nghệ phần mềm là sự cần thiết của quá
trình tin học hóa trong công tác quản lý của các cơ quan, các tổ chức v.v…Việc
quản lý thi trắc nghiệm trong trường PTTH cũng không năm ngoài xu thế ấy
Trên đây là những lý do khiến em quyết định chọn phương pháp phân tích
hướng đối tượng và ngôn ngữ UML để phát triển chương trình quản lý thi trắc
nghiệm PHTH. Chương trình được cài đặt bằng ngôn ngữ Visual Basic.Net là
một trong những công cụ lập trình hướng đối tượng mạnh mẽ nhất hiện nay. Đồ
án “Phân tích thiết kế và xây dựng chương trình quản lý thi trắc nghiệm cho
trường PTTH Quỳnh Côi – Thái Bình” bao gồm các nội dung sau:
-

Chương 1: Tổng quan về phương pháp hướng đối tượng và ngôn ngữ mô
hình hóa thống nhất UML.

-


Chương 2: Phân tích thiết kế hướng đối tượng cho hệ thống quản lý thi
trắc nghiệm cho trường PTTH Quỳnh Côi – Quỳnh Phụ - Thái Bình.

-

Chương 3: Thiết kế cài đặt chương trình.

4


CHƯƠNG 1
TỔNG QUAN VỀ PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG VÀ
NGÔN NGỮ MÔ HÌNH HÓA THỐNG NHẤT UML

1.1.

Tổng quan về phương pháp hướng đối tượng.
Phương pháp hướng đối tượng đặt trọng tâm vào các đối tượng, yếu tố

quan trọng trong quá trình phát triển chương trình và nó không cho phép dữ liệu
tách biệt, chuyển động tự do trong hệ thống. Dữ liệu được gắn chặt với các hàm
thành phần và chúng được tổ chức, quản lý truy nhập theo nhiều mức khác nhau.
Phương pháp hướng đối tượng cho phép chúng ta phân tích bài toán thành
tập các thực thể được gọi là các lớp đối tượng, sau đó xây dựng các dữ liệu thành
phần cùng với hàm thành phần thao tác trên các dữ liệu đó và trao đổi với những
đối tượng khác để thực hiện nhiệm vụ được giao.
Một chương trình, một hệ thống được xem như là một tập các lớp đối
tượng và các đối tượng đó trao đổi với nhau thông qua việc truyền và nhận thông
điệp. Vậy một chương trình hướng đối tượng có thể không cần sử dụng hoặc hạn

chế sử dụng biến chung, nên dễ dàng tạo ra hệ thống có tính mở cao hơn.
Phương pháp hướng đối tượng dựa chủ yếu vào các đối tượng nên khi có
nhu cầu thay đổi thì chỉ cần thay đổi ở một số lớp có liên quan, hoặc có thể bổ
sung một số lớp mới trên cơ sở kế thừa và sử dụng lại nhiều nhất có thể. Do đó,
một chương trình hướng đối tượng có thể không cần sử dụng biến chung.
1.1.1. Đối tượng
Đối tượng là khái niệm cơ sở, quan trọng nhất của cách tiếp cận hướng đối
tượng.
Đối tượng là thực thể của hệ thống, của cơ sở dữ liệu và được xác định
thông qua định danh của chúng. Mỗi đối tượng có tập các đặc trưng bao gồm cả
các phần tài sản thường là các dữ liệu thành phần hay các thuộc tính mô tả các

5


tính chất và các phương thức, các thao tác trên các dữ liệu để xác định hành vi
trên các đối tượng đó.
Đối tượng là các thực thể được xác định trong thời gian hệ thống hướng
đối tượng hoạt động.
Như vậy đối tượng có thể biểu diễn cho người, vật hay một bảng dữ liệu
hoặc bất kỳ một hạng thức nào đó cần xử lý trong chương trình.
Đối tượng cũng có thể là các dữ liệu được định nghĩa bởi người sử dụng
(người lập trình).
Nhiệm vụ của phân tích hướng đối tượng là phân tích bài toán thành các
đối tượng và xác định bản chất của sự trao đổi thông tin giữa chúng. Đối tượng
trong chương trình cần phải được chọn sao cho nó thể hiện được một cách gần
nhất với những thực thể có trong hệ thống thực.
Vậy, đối tượng được định nghĩa một cách trừu tượng như là một khái
niệm, một cấu trúc gộp chung cả phần dữ liệu (thuộc tính) với các hàm (phương
thức) thao tác trên những dữ liệu đó và có thể trao đổi với những đối tượng khác.

1.1.2. Lớp đối tượng
Lớp là cấu trúc mô tả hợp nhất các thuộc tính (Attributes), hay dữ liệu
thành phần (Data Member) thể hiện các đặc tính của mỗi đối tượng và các
phương thức (Methods), hay hàm thành phần (Member Function) thao tác trên
các dữ liệu riêng và là giao diện trao đổi với các đối tượng khác để xác định hành
vi của chúng trong hệ thống.
Đối tượng chính là hiện thực(cá thể) của một lớp xác định.
Phương pháp lập trình hướng đối tượng là cách phân chia chương trình
thành các đơn thể (các lớp) bằng cách tạo ra các vùng bộ nhớ cho cả dữ liệu lẫn
hàm và chúng sẽ được sử dụng như các mẫu để tạo ra bản sao từng đối tượng khi
chúng được tạo ra trong hệ thống.
Như vậy, lớp chính là tập các đối tượng có cùng các thuộc tính và hành vi
giống nhau.
Lớp bao gồm các loại cơ bản sau:

6


-

Lớp biên (boundary): Chuyển đổi thông tin giao tiếp giữa đối tác và hệ
thống như các giao diện, các báo biểu.

-

Lớp điều khiển (control): Điều hành sự diễn biến trong một ca sử dụng.
Các lớp này đứng giữa lớp biên và lớp thực thể cho phép bên ngoài giao
tiếp được thông tin với lớp thực thể.

-


Lớp thực thể (entity): Là các lớp mà dữ liệu và các mối liên quan của
chúng còn được lưu lại trong cơ sở dữ liệu hay trên tệp, sau khi ca sử dụng
của chúng đã kết thúc.

Trong UML lớp biên, lớp điều khiển, lớp thực thể được ký hiệu như sau:

Hình 1.1. Lớp biên, lớp điều khiển, lớp thực thể
1.1.3. Thuộc tính (property)
Là một tính chất của một lớp và nó nhận một giá trị cho mỗi đồi tượng
thuộc tính đó tại mỗi thời điểm. Mỗi thuộc tính đều có tầm nhìn cho biết
thuộc tính đó được thấy và dùng từ các lớp khác như thế nào. Tầm nhìn có
thể là:
-

public: Thuộc tính có thể thấy và dùng được cả lớp bên ngoài

-

private: Thuộc tính chỉ có thể dùng được bên trong lớp

-

protected: Thuộc tính chỉ có thể thấy và dùng được từ các lớp kế thừa

-

package: Thuộc tính chỉ có thể thấy và dùng được từ các lớp cùng gói

1.1.4. Phương thức (Method)

Thao tác là một hàm hay thủ tục có thể áp dụng (gọi hàm) cho hoặc bởi
các đối tượng trong một lớp
Một phương thức là một cách thức cài đặt của một thao tác trong một lớp.
Tầm nhìn của phương thức tương tự như tầm nhìn của thuộc tính
1.1.5. Trừu tượng hoá dữ liệu

7


Trừu tượng hoá là cách biểu diễn những đặc tính chính và bỏ qua những
chi tiết. Trừu tượng hoá là việc mở rộng khái niệm kiểu dữ liệu và cho phép định
nghĩa những phép toán trừu tượng trên các cơ sở trừu tượng.
1.1.6. Bao bọc và che giấu thông tin
Việc đóng gói dữ liệu và các hàm vào một đơn vị cấu trúc (gọi là lớp)
được xem như một nguyên tắc bao bọc thông tin. Kỹ thuật này cho phép xác định
các vùng đặc trưng riêng, công khai hay được bảo vệ bao gồm cả dữ liệu và
phương thức nhằm điều khiển hoặc hạn chế những truy nhập tuỳ tiện của những
đối tượng khác.
Dữ liệu được tổ chức sao cho thế giới bên ngoài (các đối tượng ở lớp
khác) không truy nhập được vào những thuộc tính riêng và chỉ cho phép các hàm
trong cùng lớp hoặc trong những lớp có quan hệ kế thừa với nhau được quyền
truy nhập đến cùng được bảo vệ. Vùng công khai của lớp thì cho phép mọi đối
tượng được phép truy nhập.
Nguyên tắc bao bọc dữ liệu để ngăn cấm sự truy nhập trực tiếp trong lập
trình được gọi là che giấu thông tin.
1.1.7. Sự mở rộng, kế thừa giữa các lớp
Nguyên lý kế thừa cho phép các đối tượng của lớp này được quyền sử
dụng một số tính chất (cả dữ liệu và các ham thành phần) của các lớp khác. Một
lớp có thể là lớp con (lớp dẫn xuất) của một lớp khác, nghĩa là có thể bổ sung
thêm một số tính chất để thu hẹp phạm vi xác định các đối tượng trong lớp mới

cho phù hợp với ngữ cảnh trong thực tế.
Theo nguyên lý chung của kế thừa thì chỉ những thuộc tính, hàm thành
phần được bảo vệ và công khai được quyền kế thừa, còn những thuộc tính, hàm
thành phần riêng thì không được phép kế thừa.
Phương pháp hướng đối tượng nói chung hỗ trợ hai nguyên lý kế thừa: kế
thừa đơn và kế thừa bội.
 Kế thừa đơn là một lớp có thể kế thừa từ một lớp cơ sở.
 Kế thừa bội là một lớp có thể kế thừa nhiều hơn một lớp cơ sở.

8


1.1.8. Đa xạ (tương ứng bội) và nạp chồng
Đa xạ là kỹ thuật được sử dụng để mô tả khả năng gửi một thông điệp
chung tới nhiều đối tượng mà mỗi đối tượng lại có cách xử lý riêng.
Đa xạ đóng một vai trò quan trọng trong việc tạo ra các đối tượng có cấu
trúc với những nội dung thực hiện khác nhau mà lại có khả năng sử dụng chung
một giao diện (cùng một tên gọi).
Đa xạ cũng có thể là sự mở rộng khái niệm sử dụng lại trong nguyên lý kế
thừa
Nạp chồng là một trường hợp của đa xạ. Nạp chồng là khả năng của một
khái niệm (như các phép toán chẳng hạn) có thể được sử dụng với nhiều nội
dung khác nhau tùy theo ngữ cảnh.
1.1.9. Liên kết động
Liên kết động là dạng liên kết các hàm, chức năng khi chương trình thực
hiện các lời gọi hàm, chức năng đó.
1.1.10.Truyền thông điệp
Truyền thông điệp cho một đối tượng tức là báo cho nó phải thực hiện một
việc, một yêu cầu nào đó.
Đối tượng nhận được thông điệp yêu cầu sẽ phải thực hiện một số công

việc trên các dữ liệu mà nó sẵn có hoặc lại tiếp tục yêu cầu những đối tượng khác
hỗ trợ để có những thông tin trả lời cho đối tượng yêu cầu.
1.1.11.Ưu điểm chính của phương pháp hướng đối tượng

 Đối tượng là cơ sở để kết hợp các đơn thể có thể sử dụng lại thành hệ
thống lớn hơn, tạo ra những sản phẩm có chất lượng cao.

 Qui ước truyền thông điệp giữa các đối tượng đảm bảo cho việc mô tả các
giao diện giữa các đối tượng thành phần bên trong hệ thống và những hệ
thống bên ngoài trở nên dễ dàng hơn. Điều đó giúp cho việc phân chia
những dự án lớn, phức tạp để phân tích, thiết kế theo cách chia nhỏ bài

9


toán thành các lớp đối tượng hoàn toàn tương ứng với quan điểm hướng
tới lời giải phù hợp với thế giới thực một các tự nhiên.

 Nguyên lý bao bọc, che giấu thông tin hỗ trợ cho việc xây dựng những hệ
thống thông tin an toàn.

 Nguyên lý kế thừa dựa chính vào dữ liệu rất phù hợp với ngữ nghĩa của
mô hình trong cài đặt. Chúng ta có thể loại bỏ được những đoạn chương
trình lặp lại, dư thừa trong mô tả các lớp và mở rộng khả năng sử dụng các
lớp đã được xây dựng.

 Lập trình hướng đối tượng, đặc biệt là kỹ thuật kế thừa cho phép dễ dàng
xác định các đơn thể và sử dụng ngay khi chúng chưa thực hiện đầy đủ các
chức năng (đơn thể mở) và sau đó mở rộng được mà không làm ảnh hưởng
tới các đơn thể khác.


 Có thể quản lý được độ phức tạp của những sản phẩm phần mềm.
 Định hướng hướng đối tượng cung cấp những công cụ, môi trường mới,
hiệu quả để phát triển phần mềm theo hướng công nghiệp và hỗ trợ để tận
dụng được những khả năng kế thừa, sử dụng lại ở phạm vi diện rộng để
xây dựng được những hệ thống phức tạp, nhạy cảm như: hệ thống động, hệ
thống thời gian thực, …

 Xoá bỏ được hố ngăn cách giữa các pha phân tích, thiết kế và cài đặt trong
quá trình xây dựng phần mềm.
1.2.

Tổng quan về phân tích thiết kế hướng đối tượng

1.2.1. Phân tích hướng đối tượng
Phân tích hướng đối tượng (Object Oriented Analysis - OOA): là một giai
đoạn của quá trình phát triển phần mềm, trong đó mô hình khái niệm được mô tả
chính xác, súc tích thông qua các đối tượng thực và các khái niệm của bài toán
ứng dụng.

10


Phân tích hướng đối tượng tập trung vào việc tìm kiếm các đối tượng, khái
niệm trong lĩnh vực bài toán và xác định mối quan hệ của chúng trong hệ thống.
Nhiệm vụ của người phân tích là nghiên cứu kỹ các yêu cầu của hệ thống
và phân tích các thành phần của hệ thống cùng các mối quan hệ của chúng.
Trong khâu phân tích hệ thống chủ yếu trả lời câu hỏi:
 Hệ thống gồm những thành phần, bộ phận nào?
 Hệ thống cần thực hiện những cái gì?

Kết quả chính của pha phân tích hệ thống hướng đối tượng là biểu đồ
trường hợp sử dụng, biểu đồ lớp, biểu đồ trạng thái, biểu đồ trình tự, biểu đồ
cộng tác.
1.2.2. Thiết kế hướng đối tượng
Dựa vào các đặc tả yêu cầu và các kết quả phân tích để thiết kế hệ thống.
Thiết kế hướng đối tượng (Object Oriented Design – OOD) là một giai đoạn
trong quá trình phát triển phần mềm, trong đó hệ thống được tổ chức thành tập các đối
tượng tương tác với nhau và mô tả được cách để hệ thống thực thi nhiệm vụ của bài
toán ứng dụng.
Trong khâu thiết kế hướng đối tượng chủ yếu trả lời câu hỏi “làm như thế
nào?”
 Trong hệ thống có những lớp đối tượng nào, trách nhiệm của chúng là gì?
 Các đối tượng tương tác với nhau như thế nào?
 Các nhiệm vụ mà mỗi lớp đối tượng phải thực hiện?
 Dữ liệu nghiệp vụ và các giao diện được xây dựng như thế nào?
 Kiến trúc và cấu hình của hệ thống ?
Nhiệm vụ chính của thiết kế hệ thống là:
 Xây dựng các thiết kế chi tiết mô tả các thành phần của hệ thống ở mức cao
hơn (khâu phân tích) để phục vụ cho việc cài đặt. Nghĩa là, các lớp đối tượng được

11


định nghĩa chi tiết gồm đầy đủ các thuộc tính, các thao tác phục vụ cho việc cài đặt
bằng ngôn ngữ lập trình hướng đối tượng được lựa chọn ở các bước sau.
 Đồng thời đưa ra được kiến trúc (là trọng tâm) của hệ thống để đảm bảo
cho hệ thống có thể thay đổi, có tính mở, dễ bảo trì, thân thiện với NSD, v.v.
Nghĩa là tổ chức các lớp thành các gói hoặc các hệ thống con theo một kiến trúc
phù hợp với nhu cầu phát triển của công nghệ (mạng, phân tán, v.v.) đồng thời
phù hợp với xu thế phát triển của lĩnh vực ứng dụng.

1.3.

Tổng quan về ngôn ngữ mô hình hóa thống nhất UML (Unified
Modeling Language)
UML là ngôn ngữ mô hình hoá, trước hết nó mô tả ký pháp thống nhất,

ngữ nghĩa các định nghĩa trực quan tất cả các thành phần của mô hình.
UML được sử dụng để hiển thị, đặc tả, tổ chức, xây dựng và làm tài liệu
các vật phẩm (artifacts) của quá trình phát triển phần mềm hướng đối tượng, đặc
biệt là phân tích, thiết kế dưới dạng các báo cáo, biểu đồ, bản mẫu hay các trang
web, v.v.
UML là ngôn ngữ và nó chỉ là một phần của tiến trình phát triển phần
mềm, độc lập với tiến trình. Tuy nhiên ngôn ngữ UML rất phù hợp với các tiến
trình trường hợp sử dụng (Use Case - UC), lấy kiến trúc làm trung tâm, tương tác
và tăng dần.
1.3.1. Sơ lược về mốc lịch sử phát triển
Khi các ngôn ngữ hướng đối tượng đã được sử dụng rộng rãi, thì nhu cầu
về công cụ để xây dựng và phát triển phần mềm hướng đối tượng trở nên cấp
bách.
Vào đầu những năm 90 của thế kỷ XX đã xuất hiện các phương pháp
hướng đối tượng sau đây:
 Phương pháp Booch (Booch Approach)
 Kỹ thuật mô hình hóa đối tượng (OMT – Object Modeling Technique) của
Rumbaugh.

12


 Kỹ nghệ phần mềm hướng đối tượng (OOSE – Object-Oriented Software
Engineering)


của Jacobson.

 Fusion và Coad/Yourdon.
Mỗi phương pháp có ký pháp, tiến trình và công cụ hỗ trợ riêng. Chúng có
những ưu điểm và nhược điểm riêng. Tùy từng điều kiện mà mỗi phương pháp có
thể được chọn phù hợp.
Do nhận thức được các vấn đề này, vào năm 1994 các tác giả của những
phương pháp này đã hợp tác với nhau để tạo ra một phương pháp mới.
Bắt đầu là sự thống nhất phương pháp Booch với OMT-2 của Rumbaugh
để hình thành Unified Method tại Rational Rose Corporation. Năm 1995, Ivar
Jacobson (tác giả của OOSE/Objectory) ra nhập với họ. Từ đó nhóm phát triển
phương pháp hướng đối tượng nói trên đã tạo ra ngôn ngữ mô hình hoá thống
nhất cho cộng đồng hướng đối tượng. Do đó họ đã đổi tên thành Unified
Modeling Language- UML (ngôn ngữ mô hình hoá thống nhất).
Họ đã đưa ra nhiều phiên bản UML, trong đó phiên bản UML 1.0 xuất
hiện vào năm 1997. Phần lớn UML được xây dựng trên nền tảng của các phương
pháp Booch, OMT và OOSE, nhưng UML còn bao gồm cả các khái niệm có
nguồn gốc từ các phương pháp khác, như David Harel, Gamma-Helm Johnson
Vlissides và Fusion.
UML còn là kết quả đóng góp từ nhiều hãng lớn như: Digital Equipment
Corporation (DEC), Hewlett-Packard (HP), I-Logix, Intellicorp, IBM, ICON
Computing, MCI Systemhouse, Microsoft, Oracle ...
1.3.2. Các ưu điểm chính của UML


UML là ngôn ngữ mô hình
Một ngôn ngữ nói chung phải cung cấp một bảng từ vựng và các qui tắc

cú pháp để tổ hợp các từ tạo nên các khối từ vựng có ngữ nghĩa để có thể giao

tiếp.
Ngôn ngữ mô hình hoá là ngôn ngữ mà các từ vựng và các qui tắc tập
trung vào biểu diễn các khái niệm và biểu diễn các vật lý của hệ thống.

13


UML là ngôn ngữ mô hình hoá chuẩn để thiết kế các hệ thống phần mềm.
UML là ngôn ngữ chuẩn công nghiệp để lập kế hoạch chi tiết phần mềm.
Không có mô hình nào là thoả mãn cho toàn bộ hệ thống. Thường thì ta phải xây
dựng nhiều mô hình cho một hệ thống, cho nên ngôn ngữ phải cho phép biểu
diễn nhiều khung nhìn khác nhau của kiến trúc hệ thống trong suốt quá trình phát
triển phần mềm. Từ vựng và các qui tắc của UML cho ta cách thức xây dựng và
đọc mô hình, nhưng không cho cho biết mô hình nào cần phải được lập và khi
nào lập chúng. Điều đó là vai trò của qui trình phát triển phần mềm.


UML là ngôn ngữ để hiển thị
UML giúp xây dựng ngôn ngữ để dễ dàng giao tiếp. Một số công việc phù

hợp với mô hình hóa bằng văn bản, một số công việc khác lại phù hợp với mô
hình hóa đồ họa
UML là ngôn ngữ đồ họa. Với nhiều hệ thống ngôn ngữ đồ họa dễ hiểu
hơn so với ngôn ngữ lập trình. Sau mỗi biểu tượng đồ họa của ngôn ngữ UML là
ngữ nghĩa. Do vậy khi xây dựng mô hình trong UML thì người phát triển khác
hay các công cụ hỗ trợ mô hình hoá có thể hiểu mô hình một cách rõ ràng.


UML là ngôn ngữ đặc tả
Đặc tả có nghĩa là xây dựng lên các mô hình một cách chính xác, đầy đủ


và không mập mờ. Trong thực tế, UML hướng tới đặc tả của tất cả các phân tích,
thiết kế và các quyết định triển khai quan trọng cần phải thực hiện khi xây dựng
và phát triển một hệ thống phần mềm chuyên sâu.


UML là ngôn ngữ để xây dựng
UML không phải là ngôn ngữ lập trình trực quan, nhưng các mô hình của

nó có thể kết hợp trực tiếp với nhiều ngôn ngữ lập trình khác nhau. Điều đó có
nghĩa là có thể ánh xạ từ một mô hình của UML vào các ngôn ngữ lập trình khác
nhau, như: C++, Java, Visual Basic hay các bảng trong cơ sở dữ liệu quan hệ
hoặc hướng đối tượng. Ánh xạ này có khả năng chuyển đổi thuận từ mô hình của
UML sang ngôn ngữ lập trình và ngược lại từ cài đặt bởi một ngôn ngữ lập trình

14


về mô hình của UML. Có nghĩa rằng nó cho khả năng làm việc với văn bản hay
đồ họa một cách nhất quán.


UML là ngôn ngữ tài liệu
UML hướng tới làm tài liệu kiến trúc hệ thống và các chi tiết của nó.
UML cho khả năng biểu diễn các yêu cầu, thử nghiệm, mô hình hoá các

hoạt động, lập kế hoạch và quản lý các sản phẩm.


Các khả năng của UML

UML trước hết dành cho các hệ thống phần mềm chuyên sâu. Nó được sử

dụng hiệu quả cho các lĩnh vực: các hệ thống thông tin xí nghiệp, các dịch vụ tài
chính ngân hàng, điện tử, viễn thông, giao thông vận tải, y học, khoa học kĩ thuật,
các dịch vụ phân tán trên Web...
UML không hạn chế trong việc mô hình hoá phần mềm. Thực tế nó biểu
diễn rất hiệu quả mô hình hoá các hệ thống không phải phần mềm như luồng
công việc trong hệ thống pháp luật, cấu trúc và hành vi của hệ thống sức khoẻ và
thiết kế phần cứng.
Đối với việc phát triển phần mềm hướng đối tượng, UML có các khả năng
sau:


Cho phép mô tả toàn bộ các sản phẩm phân tích và thiết kế.



Trợ giúp tự động hoá quá trình thiết kế trên máy tính.



Trợ giúp dịch xuôi và dịch ngược các thiết kế.

Các phần tử cơ bản của UML.
Phần tử là trừu tượng căn bản trong mô hình.
Trong UML có 4 loại phần tử mô hình: Phần tử cấu trúc, phần tử hành vi,
phần tử nhóm và chú thích.
 Phần tử cấu trúc
Phần tử cấu trúc là các danh từ trong mô hình UML. Chúng là bộ phận
tĩnh của mô hình để biểu diễn các thành phần khái niệm hay vật lý.

Trong UML có 7 loại phần tử cấu trúc như sau:

15


 Lớp: Là mô tả tập các đối tượng cùng có chung thuộc tính, thao tác, quan
hệ và ngữ nghĩa. Một lớp thực hiện một hay nhiều ghép nối
 Giao diện: Là tập hợp các thao tác làm dịch vụ của lớp hay thành phần.


Mô tả hành vi thấy được từ ngoài của thành phần.



Biểu diễn toàn bộ hay một phần hành vi của lớp.



Định nghĩa tập đặc tả thao tác chứ không định nghĩa hành vi
của chúng

Window Tên
Origin Danh sách thuộc tính
Open() Danh sách phương thức
Close()
Hình 1.2. Lớp

Hình 1.3. Giao diện

 Sự cộng tác (collaboration): xác định các hoạt động bên trong hệ thống và

là một bộ các nguyên tắc và các phần tử khác cùng làm việc để cung cấp một
hành vi hợp tác lớn hơn tổng hành vi của tất cả các phần tử. Bởi vậy, sự cộng tác
biểu diễn sự thực hiện của các phần làm nên hệ thống (Hình 3)
 Ca sử dụng (Use Case): mô tả tập các dãy hành động mà hệ thống thực
hiện để cho một két quả được các giá trị đối với một tác nhân. Một ca sử dụng
được ký hiệu bằng một hình elip nét liền bên trong bao gồm tên của nó (Hình 4)

Hình 1.4. Cộng tác

Hình 1.5. Use Case

 Lớp tích cực (Active class): là lớp có các đối tượng làm chủ một hay nhiều
tình huống. Nó được xem như lớp thông thường nhưng đối tượng của nó biểu
diễn các thành phần có hành vi đang tương tranh với các thành phần khác.
Ký pháp đồ hoạ của lớp tích cực như lớp thông thường nhưng đường biên chữ
nhật được tô đậm.

16


 Thành phần (Component): biểu diễn vật lý mã nguồn, các tệp nhị phân
trong quá trình phát triển hệ thống. Mỗi thành phần biểu diễn một gói vật lý các
phần tử logic khác như các lớp, các giao diện và sự cộng tác.
 Nút (Node): thể hiện thành phần vật lý, tồn tại khi chương trình chạy và
biểu diễn các tài nguyên tính toán, thường có ít nhất một bộ nhớ và khả năng
máy chủ xử lý. Nút có thể là máy tính, thiết bị phần cứng.

Hình 1.7. Nút

Hình 1.6. Thành phần

 Các phần tử hành vi

Các phần tử hành vi là các bộ phận động của mô hình UML, chúng mô tả
hành vi của hệ thống theo thời gian và không gian. Có 2 loại hành vi chính là
tương tác và trạng thái.
Sự tương tác (Interaction): Sự tương tác là hành vi bao gồm tập các thông
báo được trao đổi giữa tập các đối tượng trong một ngữ cảnh cụ thể để thực hiện
một mục đích cụ thể. Hành vi của nhóm đối tượng hay của mỗi thao tác có thể
được chỉ ra bằng các tương tác. Một thông báo được biểu diễn đồ hoạ bằng một
đường thẳng có hướng, thường bao gồm tên của tác vụ
Máy trạng thái (State machine): Máy trạng thái bao gồm một số các
phần tử biểu diễn các trạng thái, các chuyển dịch từ trạng thái này sang trạng thái
khác, các sự kiện kích hoạt chuyển dịch. Nó biểu diễn một dãy các trạng thái liên
tục mà một đối tượng hay một t ơng tác trải qua trong vòng đời tương ứng với
các sự kiện. Ký pháp đồ hoạ của trạng thái là hình chữ nhật góc tròn trong đó có
tên của trạng thái và các trạng thái con của nó (nếu có)

17


Hình 1.8. Thông điệp


Hình 1.9. Trạng thái

Phần tử nhóm
Phần tử nhóm là bộ phận tổ chức của mô hình UML. Chỉ có một phương

thức thuộc nhóm này có tên là gói (package).
Gói là cơ chế đa năng để tổ chức phần tử vào nhóm. Các phần tử cấu trúc,

hành vi và ngay cả phần tử nhóm cho vào gói
Phần tử nhóm chỉ tồn tại vào thời điểm phát triển hệ thống, không tồn tại
vào thời điểm chạy chương trình.
Ký pháp đồ hoạ của nhóm

Hình 1.10. Nhóm


Chú thích
Phần tử chú thích là bộ phận chú giải của mô hình UML. Nó có thể dùng

để mô tả, giải thích cho một phần tử bất kỳ trong mô hình và được gọi là lời ghi
chú (note).
Ký pháp đồ hoạ của nó là một hình chữ nhật có góc gấp cùng với một lời
bình luận

Hình 1.11. Lời ghi chú
1.3.3. Các mô hình biểu đồ
Biểu đồ là đồ thị biểu diễn đồ họa về tập các phần tử trong mô hình. Biểu
đồ chứa đựng các nội dung của các quan sát dưới các góc độ khác nhau và một

18


thành phần của hệ thống có thể xuất hiện trong một hay nhiều biểu đồ. UML
cung cấp những biểu đồ trực quan để biểu diễn các khía cạnh khác nhau của hệ
thống, bao gồm:
 Biểu đồ ca sử dụng (Use Case Diagram): mô tả sự tương tác giữa các tác
nhân ngoài (External Actor) và hệ thống thông qua các ca sử dụng.
 Các ca sử dụng (UC): là những nhiệm vụ chính, các dịch vụ, những

trường hợp sử dụng cụ thể mà hệ thống cung cấp cho người sử
dụng và ngược lại.
 Tác nhân: là con người hay hệ thống khác cung cấp hay thu nhận
thông tin từ hệ thống đang được xây dựng.
 Biểu đồ UC tập trung vào quan sát trạng thái tĩnh của các UC trong
hệ thống. Nó đặc biệt quan trọng trong việc tổ chức và mô hình hóa
hệ thống. Vì UC biểu diễn yêu cầu hệ thống từ góc độ người dùng,
cho nên UC là chức năng mà hệ thống phải có.
 Biểu đồ UC chỉ ra tác nhân nào khởi động UC và khi nào tác nhân
nhận thông tin từ hệ thống.
 Biểu đồ UC chỉ ra chức năng tổng thể của hệ thống đang phát triển.
Khách hàng, quản lý dự án, phân tích viên, lập trình viên, kỹ sư
kiểm tra chất lượng và những ai quan tâm tổng thể đến hệ thống
đều có thể biết được hệ thống sẽ hỗ trợ những gì thông qua biểu đồ
này.
 Biểu đồ trình tự (Sequence Diagram): thể hiện sự tương tác của các đối
tượng với nhau, chủ yếu là trình tự gửi và nhận thông điệp (message) để thực thi
các yêu cầu, các công việc theo thời gian.
 Biểu đồ cộng tác (Collaboration Diagram): tương tự như biểu đồ trình tự
nhưng nhấn mạnh vào sự tương tác của các đối tượng trên cơ sở cộng tác với
nhau bằng cách trao đổi các thông điệp để thực hiện các yêu cầu theo ngữ cảnh
công việc.

19


Biểu đồ cộng tác giúp kỹ sư kiểm tra chất lượng và kiến trúc sư hệ thống
thấy được việc phân bổ tiến trình giữa các đối tượng thông qua biểu đồ này.
 Biểu đồ lớp (Class Diagram): mô tả cấu trúc tĩnh, mô tả mô hình khái
niệm bao gồm các lớp đối tượng và các mối quan hệ của chúng trong hệ thống

hướng đối tượng.
Người phát triển sử dụng biểu đồ lớp để xây dựng các lớp. Kiến trúc sư
quan sát thiết kế hệ thống thông qua biểu đồ lớp.
Nếu trên biểu đồ lớp thấy một lớp có quá nhiều chức năng thì phải chia
chúng ra nhiều lớp khác.
 Biểu đồ trạng thái (State Diagram): thể hiện chu kỳ hoạt động của các
đối tượng, của các hệ thống con và của cả hệ thống. Nó là một loại ôtômát hữu
hạn trạng thái, mô tả các trạng thái, các hành động mà đối tượng có thể có và các
sự kiện gắn với các trạng thái theo thời gian.
 Biểu đồ hành động (Activity Diagram): chỉ ra dòng hoạt động của hệ
thống, bao gồm các trạng thái hoạt động, trong đó từ một trạng thái hoạt động sẽ
chuyển sang trạng thái khác sau khi một hoạt động tương ứng được thực hiện. Nó
chỉ ra trình tự các bước, tiến trình thực hiện cũng như các điểm quyết định và sự
rẽ nhánh theo luồng sự kiện.
 Biểu đồ thành phần (Component Diagram): chỉ ra cấu trúc vật lý của các
thành phần trong hệ thống, bao gồm: các thành phần mã nguồn, mã nhị phân, thư
viện và các thành phần thực thi.
 Biểu đồ triển khai (Deployment Diagram): chỉ ra cách bố trí vật lý các
thành phần theo kiến trúc được thiết kế của hệ thống.
Thông qua biểu đồ triển khai mà người quản lý dự án, người sử dụng, kiến
trúc sư và đội ngũ triển khai hiểu phân bổ vật lý của hệ thống và các hệ thống
con sẽ được đặt ở đâu?

20


CHƯƠNG 2
PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG CHO HỆ THỐNG
QUẢN LÝ THI TRẮC NGHIỆM CHO TRƯỜNG THPT
QUỲNH CÔI – QUỲNH PHỤ - THÁI BÌNH


21


2.1.

Pha khởi đầu (khảo sát hệ thống)

2.1.1. Quy trình tổ chức thi trắc nghiệm
2.1.1.1.
-

Tạo nội dung môn học và đề thi

Nhập, sửa, xóa môn thi, mỗi môn thi bao gồm 2 thông tin là: Số câu hỏi
trong một đề thi và thời gian làm bài tương ứng.

-

Tạo các chương cho từng môn học

-

Cập nhật các câu hỏi và từng chương để tạo ngân hàng câu hỏi. Mỗi câu
hỏi cần chú ý đến lựa chọn đúng và mức độ ( dễ, trung bình, khó ) của câu
hỏi.

-

Tạo lập đề thi bằng cách lấy ngẫu nhiên câu hỏi từ ngân hàng câu hỏi

tương ứng với từng môn học để thành lập đề thi. Mỗi đề thi có số câu hỏi
và thời gian làm bài tương ứng như đã thiết lập cho môn thi.

-

Đề thi do giáo viên dạy môn học đó ra đề. Đề thi gồm:
 Thời gian thi
 Tên môn thi
 Thời gian làm bài
 Các câu hỏi
Câu hỏi bao gồm: Phần hỏi, phần thông tin trả lời và điểm của câu hỏi

Các loại câu hỏi trắc nghiệm:
-

Câu hỏi có nhiều lựa chọn với một câu trả lời đúng

-

Câu hỏi chỉ có lựa chọn đúng sai.

-

Câu hỏi có nhiều lựa chọn với nhiều câu trả lời đúng (những loại câu hỏi
như vậy không nên sử dụng, vì chúng không những làm cho học sinh bối
rối mà các chương trình máy tính không tương thích với câu hỏi loại này)

Một số điều cần lưu ý khi giáo viên thiết lập câu hỏi thi.

22



-

Khẳng định vấn đề một cách rõ ràng và chính xác nhất. Tránh theo kiểu
chung chung, tối nghĩa, không có đủ những thông tin liên quan. Điều cốt
yếu là học sinh cần biết chính xác họ cần phải làm gì.

-

Câu hỏi cần bao gồm tất cả các từ ngữ chi tiết, làm giảm thời gian đọc.

-

Tránh dùng các dạng phủ định, nếu không được thì các từ ngữ phủ định
cần được đánh dấu bằng cách gạch chân hoặc viết in hoa.

-

Các câu trả lời phải tương đương nhau về độ dài

-

Tránh dùng cụm từ “ Tất cả những câu trên” (một số phân tích cho thấy
rằng những câu hỏi loại này thường là dễ nhất)

-

Dùng cụm từ “ không có câu nào trong số trên” một cách cẩn thận ( một
số phân tích cho thấy rằng những câu hỏi loại này thường khó hơn. Mặt

khác, chúng sẽ làm giảm khả năng phán đoán của sinh viên mà không có
lý do rõ ràng).

Mỗi đề thi đều có phần đáp án, bao gồm:
 Tên môn thi
 Đáp án cho từng câu hỏi
Như vậy một môn thi có thể thành lập được nhiều đề thi với mức độ ngẫu
nhiên các câu hỏi khác nhau ở 3 cấp độ dễ, trung bình, khó
2.1.1.2. Cấp password để học sinh dự thi
2.1.1.3. Tổ chức thi
-

Học sinh đăng nhập và làm bài thi. Bài thi được thực hiện trong khoảng
thời gian cho phép được người quản trị thiết lập trước.

-

Thực hiện thi bằng cách chọn đáp án đúng, sai

-

Trong khi học sinh thi, người quản trị có thể kiểm tra được kết quả làm bài
và quan sát quá trình thi của học sinh để từ đó điều chỉnh cách dạy và đưa
ra những kinh nghiệm làm bài thi trắc nghiệm

-

Kết thúc bằng cách chọn nộp bài hoặc hệ thống tự kết thúc khi hết thời
gian làm bài


-

Học sinh có thể xem điểm và đáp án ngay sau khi kết thúc một môn thi.

23


-

Tại chức năng xem điểm, người quản trị có thể đưa ra điểm của học sinh
theo danh sách lớp, theo môn thi, để từ đó có thể in ấn dễ dàng

-

Cán bộ coi thi ký, nộp

2.1.1.4. Chấm điểm
-

Sau khi học sinh nộp bài thi: Hết thời gian, hệ thống tự chấm dứt hoặc học
sinh nộp bài. Hệ thống sẽ thực hiện lưu thông tin bài thi của học sinh

-

Hệ thống chấm điểm bài thi khi người quản trị tương tác yêu cầu chấm bài
thi

Cách tính điểm
-


Bài thi có thể được chấm điểm theo thang điểm 100 (hoặc thang điểm 10)
 Mức điểm của từng câu hỏi có thể dựa theo mức độ khó của câu hỏi
hoặc các câu hỏi đều có số điểm bằng nhau

-

Phương pháp chấm điểm trước đây là một câu trả lời đúng sẽ được tính
điểm, câu trả lời sai không được cộng cũng như không bị trừ điểm. Như
vậy việc lựa chọn ngẫu nhiên các phương án trả lời sẽ dẫn đến tình trạng
các câu trả lời đúng là do sự tình cờ. Ví dụ:
Có 1000 câu hỏi chỉ với 2 lựa chọn đúng/ sai, thì sẽ có gần 1 nửa là
câu trả lời đúng, nửa còn lại sẽ là câu trả lời sai. Nếu ta dành 1 điểm cho
câu trả lời đúng, và 0 điểm cho câu trả lời sai thì kết qủa cuối cùng sẽ là
500/1000, chiếm 50%, đây là mức điểm đạt ! Rõ ràng là đây là tình huống
không mong đợi.

Vì vậy có thể khắc phục vấn đề này bằng cách áp dụng cách tính điểm trừ
vào từng câu hỏi. Chúng ta có thể khắc phục được vấn đề này bằng cách thưởng
1 điểm cho mỗi câu trả lời đúng và trừ đi 1 điểm cho mỗi câu trả lời sai. Theo
cách này, những sinh viên có chuẩn bị tốt sẽ đạt được 100% còn những sinh viên
không chuẩn bị kỹ sẽ là 0% còn những sinh viên khác sẽ đạt được mức % điểm
tuỳ thuộc vào mức độ chuẩn bị của họ. Và điều này, sau cùng chính là mục tiêu
của bất kỳ bài trắc nghiệm nào.
Ví dụ nêu trên đề cập đến 2 trường hợp. Bây giờ chúng ta sẽ xem xét tới 3
trường hợp.

24


Nếu câu hỏi có 3 sự trả lời lựa chọn, sẽ không công bằng nếu thưởng 1

điểm cho câu trả lời đúng, trừ đi 1 điểm đối với câu trả lời sai và tổng số điểm bị
trừ của câu trả lời sai sẽ bù cho số điểm được thưởng của câu trả lời đúng. Vì
vậy, nếu một câu trả lời đúng được thưởng 1 điểm, thì mỗi câu trả lời sai sẽ bị trừ
đi 0.5 điểm. ( Thay vì dùng 0.5 điểm, sẽ dễ dàng tính điểm tổng thể hơn nếu mỗi
câu trả lời đúng được thưởng 2 điểm và mỗi câu trả lời sai sẽ bị trừ đi 1 điểm).
Theo logic trên nếu chúng ta tăng số phương án lựa chọn lên, ta sẽ có bảng sau:
1

2

3

4

5

6

Tổng số Tổng số câu Tổng số điểm Tổng số câu Số điểm trừ Tổng số điểm
câu trả lời TL đúng
thưởng câu TL sai
cho mỗi câu trừ cho các
(TL)
TL đúng
TL sai
câu TL sai
( n)

( C)


( n-1)

(I)

2

1

1

1

1

1

3

1

2

2

1

2

4


1

3

3

1

3

5

1

4

4

1

4

Trong đó:
 Tổng số phương án trả lời cho từng câu hỏi có ký hiệu bằng chữ “ n”.
 Bởi vì số phương án trả lời đúng cho mỗi câu hỏi luôn luôn là 1 nên
tổng số phương án trả lời sai sẽ có ký hiệu là “ n-1”.
 Số điểm thưởng cho câu trả lời đúng sẽ ký hiệu bằng chữ “ C”
(correct).
 Số điểm bị trừ cho câu trả lời sai sẽ ký hiệu bằng chữ “ I ”.(incorrect)
Nhìn vào cột 3 và 6, có thể thấy rằng trong tất cả các trường hợp, tổng số

điểm thưởng cho câu trả lời đúng sẽ bù cho tổng số điểm trừ của câu trả lời sai;
Đạt được điều này bằng cách luôn đảm bảo sao cho số điểm trừ đi của mỗi câu
trả lời sai sẽ được điều chỉnh khi số câu trả lời sai tăng lên.
Cuối cùng, chúng ta tính giá trị của I ( cột 5) theo cách sau:
I

Diem thuong cho cau tra loi dung (cot 3)
So cac cau lua chon sai (cot 4)

Sử dụng các ký hiệu, công thức sẽ là I = C/( n-1)

25


×