Phương pháp trắc nghiệm khách quan là một phương pháp đánh giả kết quả học
tập có tính khoa học, hiện đại, khách quan, mang lại một phương phương pháp đánh giá
tối ưu. Nắm bắt được những lợi thế của phương pháp, tác giả đã “Xây dựng phần mềm
hỗ trợ quy trình soạn thảo đề thi trắc nghiệm khách quan” và đạt được một số kết quả
nhất định như: Đánh giá được thực trạng các phần mềm hỗ trợ tạo đề thi hiện nay; hiểu
được cách kiểm tra, đánh giá thành quả học tập,phân loại được các mục tiêu giáo dục và
các mức độ của lĩnh vực nhận thức; nắm bắt được các lý thuyết về trắc nghiệm cũng như
xác định được quy trình hỗ trợ tạo đề thi trắc nghiệm khách quan. Tìm hiểu và áp dụng
một số công nghệ, công cụ vào việc “Xây dựng phần mềm hỗ trợ quy trình soạn thảo
đề thi trắc nghiệm khách quan”.
Qua quá trình phân tích, thiết kế và xây dựng, tác giả nhận thấy “Phần mềm hỗ
trợ quy trình soạn thảo đề thi trắc nghiệm khách quan” của khóa luận có nhiều sự
khác biệt cũng như ưu điểm so với các sản phẩm khác như tuân thủ quy trình của một
phần mềm hỗ trợ tạo đề thi; quản lý, phân định rõ ràng quyền hạn trong hệ thống; soạn
câu hỏi với nhiều dạng câu hỏi khác nhau; hỗ trợ các kí tự đặc biệt, hình ảnh, bảng biểu;
giao diện trực quan, dễ sử dụng bởi sự hỗ trợ của Devexpress, quản lý hiệu quả ngân
hàng câu hỏi trắc nghiệm sơ bộ lẫn chính thức, đồng thời trang bị chức năng thảo luận,
kiểm duyệt khá mới mẻ vào hệ thống.
Tuy nhiên, bên cạnh những ưu điểm nổi trội vẫn còn tồn tại một số hạn chế như
chưa soạn thảo câu hỏi theo mẫu quy định từ MS Word, chưa kết xuất ngân hàng câu hỏi
kèm theo đáp án ra tệp MS Word để lưu trữ, việc lưu trữ nội dung câu hỏi, đáp án, giả
thiết chung dưới dạng file Rtf làm cho dung lượng lưu trữ lớn, phình CSDL.
Do đó, trong thời gian tới, đề tài sẽ tiếp tục nghiên cứu và hỗ trợ thêm nhiều dạng
câu hỏi trắc nghiệm theo chuẩn IMS; phát triển thêm chức năng soạn câu hỏi theo mẫu
định và kết xuất nội dung câu hỏi, đáp án ra MS Word để lưu trữ; xây dựng cách lưu trữ
mới cho dữ liệu dưới dạng XML đồng thời hướng đến một phần mềm mở đa nền tảng, có
thể quản lý trên web lẫn di động.
Trường Đại học Kin
Bạn đang xem trước 20 trang tài liệu Khóa luận Xây dựng phần mềm hỗ trợ quy trình soạn thảo đề thi trắc nghiệm khách quan, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
c thi an toàn
mã nguồn, bao gồm cả việc mã nguồn được tạo bởi các hãng nào mà tuân thủ theo kiến
trúc .NET.
- Cung cấp một môi trường thực thi mã nguồn mà loại bỏ được những lỗi thực
hiện các script hay môi trường thông dịch.
- Làm cho những người phát triển có kinh nghiệm vững chắc có thể nắm vững
nhiều kiểu ứng dụng khác nhau.
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 37
- Xây dựng tất cả các thông tin dựa trên tiêu chuẩn công nghiệp để đảm bảo rằng
mã nguồn trên .NET có thể thích hợp với bất cứ mã nguồn khác.
.NET Framework có hai thành phần chính: Common Language Runtime (CLR -
Khối thức thi ngôn ngữ chung) và Framework Class Library (FCL - thư viện lớp .NET
Framework).
- Common Language Runtime (CLR)
CLR thực hiện quản lý bộ nhớ, quản lý thực thi tiểu trình, thực thi mã nguồn, xác
nhận mã nguồn an toàn, biên dịch và các dịch vụ hệ thống khác. CLR thúc đẩy việc mã
nguồn thực hiện việc truy cập được bảo mật, cho phép phần mềm đóng gói trên Internet
có nhiều đặc tính mà không ảnh hưởng đến việc bảo mật hệ thống. CLR còn thúc đẩy cho
mã nguồn được thực thi mạnh mẽ hơn bằng việc thực thi mã nguồn chính xác và sự xác
nhận mã nguồn. Thêm vào đó, môi trường được quản lý của runtime sẽ thực hiện việc tự
động xử lý layout của đối tượng và quản lý những tham chiếu đến đối tượng, giải phóng
đối tượng khi chúng không còn được sử dụng nữa. Runtime được thiết kế để cải tiến hiệu
suất thực hiện.
- Thư viện lớp .NET Framework
Thư viện lớp .NET Framework là một tập hợp những kiểu dữ liệu được dùng lại
và được kết hợp chặt chẽ với CLR. Thư viện lớp là hướng đối tượng cung cấp những kiểu
dữ liệu mà mã nguồn được quản lý có thể dẫn xuất, khi đó những kiểu dữ liệu của .NET
Framework dễ sử dụng hơn và làm giảm thời gian học những cái mới. Thư viện lớp còn
đưa vào những kiểu dữ liệu để hỗ trợ cho những dự án phát triển chuyên biệt, phát triển
các kiểu ứng dụng và dịch vụ như: Ứng dụng Console, ứng dụng giao diện GUI trên
Windows (windows forms), ứng dụng ASP.NET, dịch vụ XML Web, dịch vụ Windows,...
2.3. Sử dụng ADO.NET để lập trình WINFORM
2.3.1. Giới thiệu khái quát ADO.NET
ADO.NET là một tập hợp hướng đối tượng các thư viện cho phép bạn tương tác
với nguồn dữ liệu (data sources). Thường thì nguồn dữ liệu là một cơ sở dữ liệu, nhưng
có thể cũng là 1 tập tin Text, bảng tính Excel hoặc 1 tập tin XML.
Trư
ờ
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 38
Data Providers
Ứng với mỗi cơ sở dữ liệu khác nhau thì ADO.NET cho phép chúng ta tương tác
cũng khác nhau. Một Data Provider được sử dụng cho việc kết nối đến cơ sở dữ liệu, đọc,
nhận, cập nhật,trong DataSet và trong cơ sở dữ liệu. Tuy nhiên do có khá nhiều nguồn
dữ liệu nên nảy sinh ra các giao thức cũng khác nhau, vì thế để giao tiếp được với cơ sở
dữ liệu chúng ta phải sử dụng giao thức phù hợp với nguồn dữ liệu đó.
Các giao thức như ODBC, OleDb, hay khác hơn là các giao thức khác thông qua
thư viện .NET của lớp ADO.NET.
Hình 2.2: Mô hình hướng đối tượng của ADO.NET
Một số giao thức thường dùng như:
Bảng 2.1: Một số giao thức thường dùng
Provider Name Tiền tố API Data Source
ODBC Data Provider Odbc Dùng cho cơ sở dữ liệu cũ
OleDb Data Provider OleDb Dùng cho cơ sở dữ liệu như Access, Excel
Oracle Data Provider Oracle Dùng cho cơ sở dữ liệu Oracle
SQL Data Provider Sql Dùng cho cơ sở dữ liệu SQL Server
Borland Data Provider Bdp
Dùng cho cơ sở dữ liệu Interbase, SQL
Server, IBM DB2, Oracle
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 39
ADO.NET Objects
ADO.NET bao gồm nhiều đối tượng giúp chúng ta làm việc với dữ liệu. Một số
đối tượng đó là:
SqlConnection Object: Là đối tượng kết nối với cơ sở dữ liệu. Kết nối này nhằm
xác định máy chủ database server, tên cơ sở dữ liệu Database name, tên người dùng user
name, mật khẩu password, và các thông số khác được yêu cầu để kết nối với cơ sở dữ
liệu. Bảng sau đây hiển thị những thuộc tính và phương thức hay sử dụng nhất của một
đối tượng kết nối
Bảng 2.2: Thuộc tính và phương thức của đối tượng SqlConnection
Tên Mô tả
ConnectionString Cung cấp thông tin như datasource, tên cơ sở dữ liệu, được sử
dụng để thiết lập kết nối với một cơ sở dữ liệu
Open() Mở một kết nói với datasource được khai báo tại
ConnectionString
Close() Được sử dụng để đóng kết nối với data source
State Được sử dụng để kiểm tra trạng thái của một kết nối. 0: kết nối
đang đóng, 1: kết nối đang mở.
Để kết nối với SQL Server, chuỗi kết nối có cấu trúc như sau:
Server=myServerAddress;Database=myDataBase;UserId=myUsername;
Password=myPassword;
SqlCommand Object
Quá trình tương tác với cơ sở dữ liệu nghĩa là phải có các hành động cho nó, tương
ứng với thực hiện một đối tượng lệnh. Đối tượng này thực thi các câu truy vấn SQL , Store
Procedure, hoặc chỉ định tham chiếu đến một đối tượng SqlDataAdapter.
SqlDataReader Object: Nhiều thao tác dữ liệu đòi hỏi chỉ lấy một luồng dữ liệu
để đọc. Đối tượng Data Reader cho phép lấy được kết quả của một câu lệnh SELECT từ
một đối tượng command. Để tăng hiệu suất, dữ liệu trả về từ một data reader là một luồng
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 40
dữ liệu fast forward-only. Có nghĩa là chỉ có thể lấy dữ liệu từ luồng theo một thứ tự nhất
định. Mặc dù điều này có lợi về mặt tốc độ, nhưng nếu cần phải thao tác dữ liệu, thì một
DataSet sẽ là một đối tượng tốt hơn để làm việc.
Các thuộc tính và phương thức của đối tượng DataReader:
Bảng 2.3: Thuộc tính và phương thức của đối tượng DataReader
Tên Mô tả
Read() Phương thức được sử dụng để đọc một dòng.
Close() Được sử dụng để đóng đối tượng DataReader.
NextResult Được sử dụng để di chuyển đến hàng dữ liệu tiếp theo trong
trường hợp câu lệnh truy vấn trả lại nhiều dòng kết quả
DataSet Object
Đối tượng DataSet là một thể hiện của dữ liệu trong bộ nhớ. Chúng chứa nhiều đối
tượng DataTable, bên trong DataTable lại có nhiều column và row, giống như các
database table thông thường. Thậm chí có thể định nghĩa dữ liệu giữa các table để tạo các
quan hệ parent-child. DataSet được thiết kế đặc biệt để giúp quản lý dữ liệu trong bộ nhớ
và để hỗ trợ các thao tác không cần kết nối trên dữ liệu. DataSet là một đối tượng được
dùng bởi tất cả Data Provider, đó là lý do tại sao nó không có một Data Provider prefix
trong tên gọi.
SqlDataAdapter: Đôi lúc dữ liệu làm việc là read-only và chúng ta ít khi cần thay
đổi dữ liệu nguồn. Vài trường hợp cần lưu trữ tạm dữ liệu trong bộ nhớ để hạn chế truy
xuất đến cơ sở dữ liệu. DataAdapter giúp quản lý dữ liệu trong chế độ ngắt kết nối
disconnect. DataAdapter sẽ đẩy vào DataSet khi đọc dữ liệu và thực hiện thay đổi tất cả
dữ liệu vào Database.
DataAdapter chứa một tham chiếu đến đối tượng connection và mở/đóng kết nối
tự động khi đọc và ghi dữ liệu vào database. Hơn nữa, DataAdapter chứa đối tượng
command cho những thao tác SELECT, INSERT, UPDATE và DELETE. STORE
PROCEDURE trên dữ liệu. Chúng ta sẽ có một DataAdapter được định nghĩa cho mỗi
Trư
ờng
ạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 41
table trong một DataSet và nó sẽ quản lý các giao tiếp với database. Tất cả những gì chúng
ta cần làm là chỉ cho DataAdapter khi nào nạp hoặc ghi vào cơ sở dữ liệu.
2.3.2. Sử dụng công cụ Visual studio 2010 để lập trình WINFORM
Visual Studio 2010 và .NET Framework 4 đánh dấu thế hệ kế tiếp của các công cụ
phát triển từ Microsoft. Đây là phiên bản tập trung vào những cốt lõi trong trải nghiệm
phát triển phần mềm, cung cấp những nền tảng mới nhất, những trải nghiệm nhắm tới các
loại ứng dụng nhất định, cùng nhiều cải thiện về kiến trúc lõi.
Một vài điểm mới trong Visual Studio 2010:
- Đơn giản hóa quá trình phát triển giải pháp, giảm thiểu nguy cơ cũng như tăng
cường kết quả trả về;
- Cung cấp môi trường tích hợp các công cụ và kiến trúc máy chủ nhằm đơn giản
hóa toàn bộ tiến trình phát triển ứng dụng, dễ dàng tùy biến mà không gây lỗi
- Mở rộng tiến trình phát triển liên tục (continuous build) đã được giới thiệu trong
phiên bản 2008 nhằm giúp các nhà phát triển tránh nguy cơ phá hỏng mã nguồn.
- Làm việc nhóm hiệu quả bằng cách khai thác tính năng cộng tác tiên tiến cũng
như sử dụng các công cụ kiểm định và dò lỗi tích hợp nhằm đảm bảo chất lượng giải pháp
vừa giảm thiểu chi phí tổn thất phát triển
- Được phân phối dưới dạng file ISO và có thể ghi ra đĩa trống sử dụng cho việc
cài đặt
2.3.3. Ngôn ngữ lập trình C#
1. Giới thiệu
C# là ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần
khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo
Microsoft nhưng theo ECMA (European Computer Manufactures Association) là C#, chỉ
bao gồm dấu số thường. Microsoft phát triển C# dựa trên C++ và Java. C# được miêu tả
là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java. C# được thiết
kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng, và Scott Wiltamuth
với các sản phẩm Turbo Pascal, Delphi, J++, WFT.
C# là một trong rất nhiều ngôn ngữ lập trình được hỗ trở bởi .NET Framework
(như C++, Java, VB, ). Có thể hiểu đơn giản đây là một trung tâm biên dịch trong đó
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 42
tất cả các ngôn ngữ được hỗ trợ bởi .NET Framework sẽ được chuyển đổi ra MSIL (một
dạng mã trung gian) rồi từ đó mới đươc biên dịch tức thời (Just in time Compiler – JIT
Compiler) thành các file thực thi như exe. Một thành tố quan trọng nữa trong kiến trúc
.NET Framework chính là CLR (.NET Common Language Runtime), khối chức năng
cung cấp tất cả dịch vụ mà chương trình cần giao tiếp với phần cứng, với hệ điều hành.
2. Tại sao phải sử dụng ngôn ngữ C#
- C# là ngôn ngữ đơn giản: C# loại bỏ một vài sự phức tạp và rối rắm của những
ngôn ngữ như Java và C++, bao gồm việc loại bỏ những macro, những template, đa kế
thừa, và lớp cơ sở ảo (virtual base class). C# khá giống C, C++ và Java về diện mạo, cú
pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và
C++, nhưng nó đãđược cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài trong các sự
cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi.
- C# là ngôn ngữ hiện đại: Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ
tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong
đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính trên
- C# là ngôn ngữ hướng đối tượng: Những đặc điểm chính của ngôn ngữ hướng
đối tượng (Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa
(inheritance), và đa hình (polymorphism). C# hỗ trợ tất cả những đặc tính trên.
- C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo: Ngôn ngữ này không đặt những
ràng buộc lên những việc có thể làm. C# được sử dụng cho nhiều các dự án khác nhau
như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những
trình biên dịch cho các ngôn ngữ khác.
- C# là ngôn ngữ ít từ khóa : C# là ngôn ngữ sử dụng giới hạn những từ khóa.
Phần lớn các từ khóa được sử dụng để mô tả thông tin. Chúng ta có thể nghĩ rằng một
ngôn ngữ có nhiều từ khóa thì sẽ mạnh hơn. Điều này không phải sự thật, ít nhất là trong
trường hợp ngôn ngữ C#, chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng
để làm bất cứ nhiệm vụ nào.
- C# là ngôn ngữ hướng module : Mã nguồn C# có thể được viết trong những
phần được gọi là những lớp, những lớp này chứa các phương thức thành viên của nó.
Những lớp và những phương thức có thể được sử dụng lại trong ứng dụng hay các chương
T ư
ờng
Đạ
i họ
c K
inh
ế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 43
trình khác. Bằng cách truyền các mẫu thông tin đến những lớp hay phương thức chúng ta
có thể tạo ra những mã nguồn dùng lại có hiệu quả.
- C# sẽ là một ngôn ngữ phổ biến : C# là một trong những ngôn ngữ lập trình mới
nhất. Nhưng ngôn ngữ này có một số lý do để trở thành một ngôn ngữ phổ biến. Một trong
những lý do chính là Microsoft và sự cam kết của .NET. Ngoài hai lý do trên ngôn ngữ
C# cũng sẽ trở nên phổ biến do những đặc tính của ngôn ngữ này được đề cập trong mục
trước như: đơn giản, hướng đối tượng, mạnh mẽ
2.4. Sử dụng hệ quản trị cơ sở dữ liệu SQL Server để lưu trữ và thao tác dữ liệu
2.4.1. Giới thiệu chung
Microsoft SQL Server là hệ quản trị cơ sở dữ liệu quan hệ (Relational DataBase
Management System – RDBMS) sử dụng các câu lệnh Transaction – SQL để trao đổi dữ
liệu giữa máy khách (Client Computer) và máy chủ (Server Computer). Người dùng truy
cập dữ liệu trên máy chủ thông qua ứng dụng. Người quản trị CSDL truy cập máy chủ
trực tiếp để thực hiện các chức năng cấu hình, quản trị và thực hiện các thao tác bảo trì
CSDL.
SQL Server là một hệ quản trị CSDL có khả năng mở rộng, chúng có thể lưu một
lượng lớn dữ liệu và hỗ trợ tính năng cho phép nhiều người dùng truy cập đồng thời.
Các phiên bản của SQL Server phổ biến hiện này là SQL Server 7.0, SQL Server
2000, SQL Server 2005, SQL Server 2008.
Các đặc tính của SQL Server:
- Cho phép quản trị một hệ CSDL lớn (lên đến vài tega byte), có tốc độ xử lý dữ
liệu nhanh đáp ứng yêu cầu về thời gian.
- Cho phép nhiều người cùng khai thác trong một thời điểm đối với một CSDL
và toàn bộ quản trị CSDL (lên đến vài chục ngày user).
- Có hệ thống phân quyền bảo mật tương thích với hệ thống bảo mật của công
nghệ NT (Network Technology), tích hợp với hệ thống bảo mật của Windows NT hoặc
sử dụng hệ thống bảo về độc lập của SQL Server.
- Hỗ trợ trong việc triển khai CSDL phân tán và phát triển ứng dụng trên Internet.
- Cho phép lập trình kết nối với nhiều ngôn ngữ lập trình khác dùng xây dựng các
ứng dụng đặc thù (Visual Basic, C, C++, ASP...).
Trư
ờn
Đạ
i họ
Kin
h tế
Hu
ế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 44
- Sử dụng câu lệnh truy vấn dữ liệu Transaction – SQL (ví dụ như trong Access
là SQL, trong Oracle là PL/SQL).
2.4.2. Các thành phần của SQL Server
SQL Server được cấu thành bởi nhiều thành phần khác nhau, các thành phần này
có mối quan hệ trong một hệ thống, phối hợp với nhau tạo thành một giải pháp hoàn chỉnh,
nâng cáo hiệu quả quản trị, phân tích, lưu trữ dữ liệu. Mô hình các thành phần của SQL
Server được thể hiện như sau:
Hình 2.3: Các thành phần của SQL Server
- Replication: Là công cụ dùng nhân bản dữ liệu, người dùng có thể tạo một
Server khác với bộ dữ liệu giống bộ dữ liệu trên server chính. Công cụ tạo cơ chế tự đồng
bộ dữ liệu giữa Server chính và Server nhân vản. Mục đích của việc tạo Server nhân bản
là giảm tải cho Server chính, nâng cao hiệu quả phục vụ với số lượng người, phiên giao
dịch lớn.
- Data Transformation Service – DTS: Là công cụ giúp người dùng chuyển dữ
liệu giữa các Server quản trị CSDL khác nhau, DTS có thể chuyển dữ liệu từ SQL Server
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 45
sang Oracle, Access, DB,... trước khi chuyển dữ liệu DTS định dạng kiểu dữ liệu để
chuyển sang hệ quản trị CSDL khác.
- Analysis service: Là công cụ giúp khai thác phân tích dữ liệu, hay khai phá dữ
liệu theo phương thức đa chiều. Từ một tập dữ liệu sẵn có, người dùng có thể khai phá rồi
từ đó đưa ra những nhận định, phân tích, đánh giá và dự đoán theo lĩnh vực nào đó, mỗi
chiều trong ngữ cảnh này được coi là một tiêu chí xem xét của dữ liệu.
- English query: Là công cụ tra cứu dữ liệu bằng tiếng Anh, cú pháp có thể sử
dụng theo văn phạm tiếng Anh thông thường.
- SQL Server tools: Là bộ công cụ cung cấp giao diện cho người quản trị như:
Enterprise manager, Query Analyzer,...
2.4.3. Microsoft SQL Server 2008
SQL Server 2008 cho phép các nhà phát triển giảm được sự phức tạp của cơ sở hạ
tầng trong khi đó vẫn đảm bảo cung cấp một nền tảng dữ liệu doanh nghiệp có khả năng
bảo mật, khả năng mở rộng và quản lý tốt hơn, cùng với thời gian chết của ứng dụng giảm.
Những điểm mới của SQL Server 2008
- Nền tảng cho các nhiệm vụ then chốt:
+ SQL Server 2008 cho phép các tổ chức có thể chạy hầu hết các ứng dụng phức
tạp của họ trên một nền tảng an toàn, tin cậy và có khả năng mở rộng. Bên cạnh đó còn
giảm được sự phức tạp trong việc quản lý cơ sở hạ tầng dữ liệu.
+ SQL Server 2008 cung cấp một nền tảng tin cậy và an toàn bằng cách đảm bảo
những thông tin có giá trị trong các ứng dụng đang tồn tại và nâng cao khả năng sẵn có
của dữ liệu.
+ SQL Server 2008 giới thiệu một cơ chế quản lý cách tân dựa trên chính sách, cơ
chế này cho phép các chính sách có thể được định nghĩa quản trị tự động cho các thực thể
máy chủ trên một hoặc nhiều máy chủ. Thêm vào đó, SQL Server 2008 cho phép thi hành
truy vấn dự báo với một nền tảng tối ưu.
- Sự phát triển động:
SQL Server 2008 cùng với .Net Framwork đã giảm được sự phức tạp trong việc
phát triển các ứng dụng mới.
- Dữ liệu quan hệ mở rộng:
T ư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 46
SQL Server 2008 cho phép các chuyên gia phát triển khai thác triệt để và quản
lý bất kỳ kiểu dữ liệu nào từ các kiểu dữ liệu truyền thống đến dữ liệu không gian
địa lý mới.
- Thông tin trong toàn bộ doanh nghiệp:
+ SQL Server 2008 cung cấp một cơ sở hạ tầng có thể mở rộng, cho phép quản lý
các báo cáo, phân tích với bất kỳ kích thước và sự phức tạp nào, bên cạnh đó nó cho phép
người sử dụng dễ dàng hơn trong việc truy cập thông tin qua sự tích hợp sâu hơn với
Microsoft Office. Điều này cho phép đưa được thông tin của doanh nghiệp rộng khắp
trong tổ chức.
+ SQL Server 2008 cho phép người dùng hợp nhất trong các trung tâm dữ liệu vào
một nơi lưu trữ dữ liệu tập trung của toàn doanh nghiệp.
- Bộ đếm hiệu suất được mở rộng.
- Tài nguyên chủ có thể được bảo đảm an toàn:
Với tính năng quản lý tài nguyên (Resource Governor) trong SQL Server 2008.
Governor được sử dụng hạn chế người dùng hoặc nhóm người dùng chi phôi các lớp tài
nguyên mức cao.
- Việc cài đặt đã được đơn giản hóa và khả năng gỡ bỏ cài đặt các gói dịch vụ
cũng thực hiện một cách dễ dàng hơn.
- Mã hóa dữ liệu:
Cho phép cơ sở dữ liệu, các bảng và dữ liệu có thể được mã hóa mà không cần
phải lập trình ứng dụng, ở SQL Server 2008 toàn bộ cơ sở dữ liệu đều có thể được mã hóa
bằng SQL Engine.
SQL Server 2008 có các phiên bản: Enterprise (x86,X64,IA64), Standard
(x86,x64), Small Business (x86,x64), Developer (x86,X64,IA64), Workgroup (x86,x64),
Web (x86,x64), Express (x86,x64),
2.5. Tạo giao diện bằng bộ công cụ hỗ trợ Devexpress 13.2.5
DevExpress là một Framework được viết cho nền tảng .NET Framework. Nó cung
cấp các control và công nghệ để phục vụ cho quá trình phát triển phần mềm. Thành phần
của DevExpress bao gồm:
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 47
WinForm Controls: Cung cấp các control cho WinForms.
ASP.NET Controls: Cung cấp các control cho WebForms.
WPF Controls: Cung cấp các control cho WPF
Silverlight Controls: Cung cấp các control cho Silverlight
XtraCharts: Control cung cấp các loại biểu đồ.
XtraReports: Cung cấp các control tạo báo cáo
XPO: Cung cấp môi trường làm việc với database
XAF: Một công nghệ mới giúp việc phát triển phần mềm một cách nhanh chóng
Trải qua nhiều phiên bản, DevExpress đã từng bước nâng cấp, hoàn thiện và thêm
mới rất nhiều chức năng. Với phiên bản DevExpress 13.2.5 được cung cấp những công
cụ, môi trường tuyệt vời để biến những ý tưởng thành hiện thực một cách nhanh chóng,
dễ dàng, mang tính thẩm mỹ cao.
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 48
CHƯƠNG 3
PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM HỖ TRỢ QUY TRÌNH SOẠN
THẢO ĐỀ THI TRẮC NGHIỆM KHÁCH QUAN
Từ việc tìm hiểu lý thuyết về kiểm tra, đánh giá thành quả học tập, quy trình xây
dựng phần mềm hỗ trợ soạn thảo đề thi trắc nghiệm khách quan ở Chương 1và các công
nghệ được sử dụng ở Chương 2, Chương này sẽ trình bày phân tích và thiết kế hệ thống
mới của khóa luận phù hợp với các mục tiêu đã đề ra.
3.1. Tổng quan về phần mềm hỗ trợ soạn thảo đề thi trắc nghiệm
3.1.1. Giới thiệu về hệ thống hỗ trợ thi trắc nghiệm
Hệ thống hỗ trợ thi trắc nghiệm được mô hình hóa như sau:
Hình 3.1: Mô hình hệ thống thi trắc nghiệm
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 49
Hệ thống này bao gồm:
Ngân hàng trắc nghiệm: bao gồm ngân hàng trắc nghiệm, ngân hàng bố cục đề,
ngân hàng đề trắc nghiệm của tất cả các môn học được phân theo từng bộ môn, từng khoa.
Chức năng Bộ soạn thảo đề thi trắc nghiệm, là chương trình giúp cho giáo viên
soạn thảo câu hỏi trắc nghiệm, soạn thảo bố cục đề và soạn thảo đề trắc nghiệm. Ngoài
ra, chương trình còn nhiều chức năng khác sẽ được mô tả trong phần tiếp theo.
Chức năng Thống kê và Đánh giá trắc nghiệm, là chương trình dùng để Thống
kê và Đánh giá thi trắc nghiệm, là chương trình dùng để thống kê và đánh giá câu trắc
nghiệm và đề trắc nghiệm. Dữ liệu tính toán được sẽ lưu theo từng câu trắc nghiệm và
từng đề trắc nghiệm giúp cho giáo viên sữa chữa hoặc giúp cho bộ bóc đề chọn câu trắc
nghiệm phù hợp.
Chức năng Thi trắc nghiệm, đây là chương trình dành cho các thí sinh. Chương
trình này sẽ lấy đề thi từ ngân hàng đề, thí sinh sẽ làm bài ngay trong chương trình (bằng
cách nhấn các nút trên màn hình). Sau khi kết thúc, điểm hiển thị ra màn hình báo cho thí
sinh biết và đồng thời điểm đó cũng sẽ được ghi nhận vào CSDL điểm.
Cuối cùng, là chức năng Quản trị hệ thống, đây là chương trình nhằm để quản lý
toàn bộ hệ thống. Người quản trị có thể phân quyền, bãi bỏ quyền, quản lý truy xuất ngân
hàng trắc nghiệm, cập nhật, duy tu ngân hàng trắc nghiệm,
Và đề tài “Xây dựng phần mềm hỗ trợ quy trình soạn thảo đề thi trắc nghiệm
khách quan” của khóa luận nhằm nghiên cứu, lựa chọn các giải pháp phù hợp với mục
tiêu đề ra bằng việc mô tả hệ thống mới như sau:
3.1.2. Mô tả hệ thống
Phần mềm hỗ trợ soạn thảo đề thi trắc nghiệm nên khóa luận này đã xây dựng hệ
thống bao gồm:
Chương trình soạn thảo câu hỏi và quản lý ngân hàng câu hỏi trắc nghiệm:
Chương trình soạn thảo: là chương trình cho phép người soạn được phân quyền soạn thảo
ở phần kiến thức cụ thể của một môn học nào đó, ngoài ra nó còn cho phép chỉnh lý lại
câu hỏi đã soạn trong trường hợp câu hỏi đó chưa được công khai để người khác (người
trong tổ bộ môn) có thể xem, thảo luận và duyệt câu hỏi. Nội dung của câu hỏi soạn thảo
bao gồm Nội dung câu hỏi, các lựa chọn và đáp án, nội dung giả thiết chung (nếu có).
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 50
Quản lý ngân hàng trắc nghiệm: ngân hàng trắc nghiệm là thành phần cốt lõi và
quan trọng nhất, bao gồm ngân hàng câu trắc nghiệm sơ bộ, ngân hàng câu hỏi chính thức
của tất cả môn học theo từng bộ môn, tổ bộ môn. Ở ngân hàng sơ bộ sẽ thực hiện quản lý
các câu hỏi đã công khai duyệt, cho phép xem tỉ lệ duyệt của câu hỏi và chương trình sẽ
tự động chuyển câu hỏi khi tỉ lệ duyệt vượt quá 50% số người trong tổ bộ môn hoặc trường
hợp tỉ lệ duyệt chưa quá 50% mà trưởng tổ bộ môn hoặc quản lý hệ thống muốn chuyển
câu hỏi nào đó sang ngân hàng chính thức thì có thể tự thực hiện bằng chức năng “Chuyển
câu hỏi sang ngân hàng chính thức” được trang bị trong hệ thống. Ở ngân hàng chính thức
sẽ thực hiện quản lý các câu hỏi được dùng cho việc bốc đề thi, tại đây người sử dụng có
thể xem độ khó và tình trạng câu hỏi là cần sửa, cần xem xét lại làm căn cứ để quản lý hệ
thống hoặc trưởng bộ môn thực hiện việc chuyển câu hỏi về lại ngân hàng sơ bộ để thảo
luận, duyệt và chỉnh sửa lại cho phù hợp.
Chức năng quản lý môn học: là chương trình cho phép quản lý môn học, kiến
thức của môn học bao gồm chương, chủ đề, mục kiến thức và mức trí năng và quản lý ma
trận kiến thức, phân quyền soạn thảo cụ thể dựa vào ma trận.
Chức năng quản lý người sử dụng: bao gồm quản lý thông tin cá nhân và thông
tin tài khoản.
Chức năng quản lý hệ thống: bao gồm quản lý các danh mục như độ khó, khoa,
tổ bộ môn, chức danh, giáo viên, quản lý cây phân cấp môn học, cho phép tạo tài khoản
người dùng, phân quyền sử dụng hệ thống theo thứ tự từ thấp đến cao bao gồm quyền
giáo viên ra đề, quyền trưởng tổ bộ môn và quyền quản lý hệ thống, sao lưu cơ sở dữ liệu,
cuối cùng là theo dõi thông tin truy nhập hệ thống của người dùng.
Chức năng in đề: là chương trình cho phép chọn đề có sẵn trong ngân hàng đề của
một môn học cụ thể và xuất đề ra dạng file pdf.
3.2. Phân tích hệ thống
3.2.1. Phân tích hệ thống về chức năng
Phân tích hệ thống về chức nhằm xác định một cách chính xác và cụ thể các chức
năng chính của hệ thống thông tin. Trong giai đoạn này cần phải xác định rõ ràng những
gì mà hệ thống cần phải thực hiện mà chưa quan tâm đến phương pháp thực hiện chức
năng đó.
Trư
ờ g
Đạ
i họ
c K
inh
tế H
ế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 51
1. Sơ đồ phân rã chức năng (BFD - Business Function Diagram)
Sơ đồ phân rã chức năng là:
- Công cụ biểu diễn việc phân rã có thứ bậc đơn giản các công việc cần thực hiện.
- Mỗi công việc được chia ra làm các công việc con.
- Số mức chia ra phụ thuộc vào kích cỡ và độ phức tạp của hệ thống.
Sơ đồ chức năng của hệ thống bao gồm 5 chức năng: Quản lý người dùng, quản lý
hệ thống, soạn câu hỏi, quản lý môn học và in đề.
Hình 3.2: Sơ đồ chức năng
2. Mô tả chức năng
a. Chức năng “Quản lý người dùng”
Bao gồm 3 chức năng con:
- Đăng nhập
- Đăng xuất
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 52
- Quản lý thống thông tin người dùng (thông tin cá nhân và thông tin đăng nhập)
Hình 3.3: Chức năng quản lý người dùng
b. Chức năng “Quản lý hệ thống”
Bao gồm 6 chức năng con:
- Quản lý danh mục
- Quản lý cây phân cấp môn học
- Tạo tài khoản người dùng
- Phân quyền hệ thống
- Sao lưu cơ sở dữ liệu
- Quản lý thông tin truy nhập hệ thống
Hình 3.4: Chức năng quản lý hệ thống
c. Chức năng “Soạn câu hỏi”
Hình 3.5: Chức năng soạn câu hỏi
Bao gồm 6 chức năng con:
- Nhập câu hỏi
- Hiệu chỉnh câu hỏi
- Thảo luận
- Duyệt câu hỏi
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 53
- Chuyển câu hỏi đến ngân hàng chính thức
- Chuyển câu hỏi về ngân hàng sơ bộ
d. Chức năng “Quản lý môn học”
Bao gồm 6 chức năng con:
- Quản lý chương
- Quản lý chủ đề
- Quản lý mục kiến thức
- Quản lý mức trí năng
- Quản lý ma trận kiến thức
- Phân quyền soạn câu hỏi
Hình 3.6: Chức năng quản lý môn học
e. Chức năng “In đề”
Bao gồm 2 chức năng con:
- Chọn đề
- In đề
Hình 3.7: Chức năng in đề
3. Sơ đồ ngữ cảnh (CD - Context Diagram)
Sơ đồ ngữ cảnh là một dạng sơ đồ được dùng để hỗ trợ cho quá trình xây dựng sơ
đồ dòng dữ liệu. Việc sử dụng sơ đồ ngữ cảnh nhằm làm rõ biên giới của hệ thống và hỗ
trợ việc nghiên cứu các mối quan hệ của hệ thống với thế giới bên ngoài, từ đó cũng có
thể làm rõ các hoạt động của hệ thống, các thông tin vào ra của hệ thống.
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 54
Đối với phạm vi khóa luận này, sơ đồ ngữ cảnh sau thể hiện khái quát nội dung
chính của hệ thống hỗ trợ soạn thảo đề thi trắc nghiệm khách quan.
Hình 3.8: Sơ đồ ngữ cảnh
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 55
4. Sơ đồ luồng dữ liệu (DFD – Data Flow Diagram)
Sơ đồ luồng dữ liệu một công cụ mô tả mối quan hệ thông tin giữa các công việc.
a. Sơ đồ luồng dữ liệu mức 0
Hình 3.9: Sơ đồ luồng dữ liệu mức 0
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 56
b. Sơ đồ phân rã chức năng 1.0
Hình 3.10: Sơ đồ phân rã chức năng 1.0
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 57
c. Sơ đồ phân rã chức năng 2.0
Hình 3.11: Sơ đồ phân chức năng 2.0
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 58
d. Sơ đồ phân rã chức năng 3.0
Hình 3.12: Sơ đồ phân rã chức năng 3.0
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 59
e. Sơ đồ phân rã chức năng 4.0
Hình 3.13: Sơ đồ phân rã chức năng 4.0
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 60
f. Sơ đồ phân rã chức năng 5.0
Hình 3.14: Sơ đồ phân rã chức năng 5.0
3.2.2. Phân tích hệ thống về dữ liệu
1. Các tập thức thể và thuộc tính tương ứng
Từ việc phân tích hiện trạng, sơ đồ chức năng BFD và sơ đồ phân rã các mức, ta
xác định được thực thể và các thuộc tính tương ứng như sau:
- Tập thực thể “Câu hỏi”: Lưu trữ thông tin câu hỏi
CAUHOI(IdCauHoi, NoiDung, DoPhanCach, NgayTao, NgayCapNhat,
TyLeDuyet, CongKhai)
- Tập thực thể “Câu trả lời”: Lưu trữ thông tin các lựa chọn và đáp án
CAUTRALOI(IdCauTraLoi, NoiDung1,NoiDung2,DapAn,CoDinh)
- Tập thực thể “Câu hỏi chính thức”: Lưu trữ thông tin câu hỏi được dùng để
bốc đề
CAUHOICHINHTHUC(IdCauHoiChinhThuc, NoiDung, NgayTao,
NgayCapNhat, TyLeDuyet, NgayDanhGiaGanNhat,
SoLuongTraLoiDung,TongSoTraLoi, DoPhanCach, TinhTrang, CongKhai, Khoa)
Trư
ờng
Đạ
i ọ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 61
- Tập thực thể “Câu trả lời chính thức”: Lưu trữ thông tin các lựa chọn và đáp
án của câu hỏi chính thức
CAUTRALOICHINHTHUC(IdCauTraLoiChinhThuc,NoiDung1, NoiDung2,
DapAn, CoDinh)
- Tập thực thể “Chức danh”: Lưu trữ thông tin chức danh của người dùng
CHUCDANH(IdChucDanh, TenChucDanh, MoTa)
- Tập thực thể “Chủ đề”: Lưu trữ thông tin chủ đề của môn học
CHUDE(IdChuDe, TenChuDe, MoTa)
- Tập thực thể “Chương”: Lưu trữ thông tin chương của môn học
CHUONG(IdChuong, TenChuong, MoTa)
- Tập thực thể “Độ khó”: Lưu trữ thông tin các độ khó của câu hỏi
DOKHO(IdDoKho, TenDoKho)
- Tập thực thể “Giáo viên”: Lưu trữ thông tin tất cả người dùng của hệ thống
bao gồm quản lý, trưởng tổ bộ môn và quản lý hệ thống
GIAOVIEN(IdGiaoVien, TenGiaoVien, TaiKhoan, MatKhau, NgaySinh,
DiaChi, SoDienThoai, TrangThai, GhiChu, HinhAnh, Email)
- Tập thực thể “Giả thiết chung”: Lưu trữ nội dung giả thiết chung của câu hỏi
GIATHIETCHUNG(IdGiaThietChung, NoiDung)
- Tập thực thể “Khoa”: Lưu trữ thông tin các khoa
KHOA(IdKhoa, TenKhoa, MoTa)
- Tập thực thể “Loại câu hỏi”: Lưu trữ thông tin các loại câu hỏi khác nhau
LOAICAUHOI(IdLoaiCauHoi, TenLoaiCauHoi, MoTa)
- Tập thực thể “Môn học”: Lưu trữ thông tin các môn học
MONHOC(IdMonHoc, TenMonHoc, MoTa)
- Tập thực thể “Mục kiến thức”: Lưu trữ thông tin mục kiến thức của môn học
MUCKIENTHUC(IdMucKienThuc, TenMucKienThuc, MoTa)
- Tập thực thể “Mức trí năng”: Lưu trữ thông tin các mức trí năng của môn học
MUCTRINANG(IdMucTriNang, TenMucTriNang)
- Tập thực thể “Quyền”: Lưu trữ thông tin quyền hạn đăng nhập hệ thống
QUYEN(IdQuyen, TenQuyen)
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 62
- Tập thực thể “Tổ bộ môn”: Lưu trữ các tổ bộ môn
TOBOMON(IdToBoMon, TenToBoMon, MoTa)
2. Mối quan hệ giữa các tập thực thể
- Giữa 2 tập thực thể “Câu hỏi” và “Giả thiết chung” có mối quan hệ “Có”. Đây
là mối quan hệ 1 – n vì mỗi câu hỏi có 0 hoặc một giả thiết chung duy nhất và mỗi giả
thiết chung có thể có nhiều câu hỏi.
- Giữa 2 tập thực thể “Câu trả lời” và “Câu hỏi” có mối quan hệ “Có”. Đây là mối
quan hệ 1 – n vì mỗi câu hỏi có thể có nhiều câu trả lời và mỗi câu trả lời chỉ thuộc một
câu hỏi duy nhất.
- Giữa 2 tập thực thể “Câu hỏi” và “Độ khó” có mối quan hệ “Có”. Đây là mối
quan hệ 1-n vì mỗi câu hỏi chỉ có một độ khó duy nhất và mỗi độ khó có thể có nhiều câu
hỏi.
- Giữa 2 tập thực thể “Câu hỏi” và “Loại câu hỏi” có mối quan hệ “Có”. Đây là
mối quan hệ 1 – n vì mỗi câu hỏi chỉ có 1 độ khó và mỗi độ khó lại có nhiều câu hỏi.
- Giữa 2 tập thực thể “Câu hỏi” và “Giáo viên” có mối quan hệ “Thảo luận”. Đây
là mối quan hệ n – n vì mỗi câu hỏi được nhiều giáo viên thảo luận và mỗi giáo viên có
thể thảo luận nhiều câu hỏi.
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 63
- Giữa 2 tập thực thể “Câu hỏi” và “Giáo viên” cũng có mối quan hệ “Duyệt”.
Đây là mối quan hệ n – n vì mỗi câu hỏi được duyệt bởi nhiều giáo viên và mỗi giáo viên
có thể duyệt nhiều câu hỏi.
- Giữa 2 tập thể “Mức trí năng” và “Mục kiến thức” có mối quan hệ “Có”. Đây
là mối quan hệ n – n vì mỗi mục kiến thức có thể có nhiều mức trí năng và ngược lại mỗi
mức trí năng có thể có trong nhiều mục kiến thức.
- Giữa 2 tập thực thể “Khoa” và “Tổ bộ môn” có mối quan hệ “Có”. Đây là mối
quan hệ 1 – n vì mỗi khoa có nhiều tổ bộ môn và mỗi tổ bộ môn chỉ thuộc một khoa.
- Giữa 2 tập thực thể “Môn học” và “Tổ bộ môn” có mối quan hệ “Có”.Đây là
mối quan hệ 1 – n vì mỗi tổ bộ môn có thể có nhiều môn học và mỗi môn học thì chỉ
thuộc một tổ bộ môn.
- Giữa 2 tập thực thể “Giáo viên” và “Tổ bộ môn” có mối quan hệ “Có”. Đây là
mối quan hệ 1 – n vì một tổ bộ môn có thể có nhiều giáo viên và mỗi giáo viên chỉ thuộc
một tổ bộ môn.
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 64
- Giữa 2 tập thực thể “Câu hỏi” và “Môn học” có mối quan hệ “Có”. Đây là mối
quan hệ 1 – n vì một môn học có thể có nhiều câu hỏi và một câu hỏi chỉ thuộc một môn.
- Giữa 2 tập thực thể “Chương” và “Môn học” có mối quan hệ “Có”. Đây là mối
quan hệ 1 – n vì một môn học có thể có nhiều chương và mỗi chương chỉ thuộc một môn.
- Giữa 2 tập thực thể “Mục kiến thức” và “Chủ đề” có mối quan hệ “Có”. Đây là
mối quan hệ 1 – n vì mỗi chủ đề có thể có nhiều mục kiến thức và mỗi mục kiến thức chỉ
thuộc một chủ đề.
- Giữa 2 tập thực thể “Chủ đề” và “Chương” có mối quan hệ “Có”. Đây là mối
quan hệ 1 – n vì mỗi chương có thể có nhiều chủ đề và mỗi chủ đề chỉ thuộc một chương.
- Giữa 2 tập thực thể “Quyền” và “Giáo viên” có mối quan hệ “Có”. Đây là mối
quan hệ 1 – n vì mỗi quyền có thể có cho nhiều giáo viên và mỗi giáo viên chỉ có một
quyền duy nhất.
- Giữa 2 tập thực thể “Chức danh” và “Giáo viên” có mối quan hệ “Có”. Đây là
mối quan hệ n – n vì mỗi giáo viên có thể có nhiều chức danh tùy mỗi thời điểm và mỗi
chức danh có thể có trong nhiều giáo viên.
- Giữa 2 tập thực thể “Câu hỏi chính thức” và “Câu trả lời chính thức” có mối
quan hệ “Có”. Đây là mối quan hệ 1 – n vì mỗi câu hỏi chính thức có thể có nhiều câu trả
lời chính thức và mỗi câu trả lời chính thức chỉ thuộc một câu hỏi.
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 65
3. Sơ đồ thực thể - mối quan hệ
Từ việc phân tích mối quan hệ của các tập thực thể, ta có sơ đồ thực thể - mối
quan hệ như sau:
Hình 3.15: Sơ đồ thực thể - mối quan hệ
4. Chuyển các mối quan hệ thành lược đồ quan hệ
Mỗi mối quan hệ giữa các tập thực thể sẽ được chuyển thành một lược đồ quan hệ
có tên là tên của mối quan hệ và nhận các thuộc tính là khóa của các tập thực thể tham gia
vào mối quan hệ và có thể thêm vào thuộc tính riêng (nếu có).
- Giữa hai tập thực thể có mối quan hệ n-1 thì khóa chính của tập thực thể bên 1
sẽ làm khóa phụ của tập thực thể bên n.
- Giữa hai tập thực thể có mối quan hệ n-n thì tập thực thể mới được xây dựng
nên sẽ lấy khóa chính của hai tập thực thể tham gia vào mối quan hệ n-n làm khóa chính.
Như vậy, từ sơ đồ thực thể - mối quan hệ, ta nhận thấy có 3 mối quan hệ n – n. Do
đó sẽ tạo ra thêm 4 lược đồ quan hệ mới có tên và thuộc tính như sau:
- Lược đồ CHITIETCHUCDANH(IdChucDanh, IdGiaoVien, ThoiDiem)
- Lược đồ MATRANKIENTHUC(IdMaTranKienThuc, IdMucKienThuc,
IdMucTriNang, SoCauNhap, SoCauQuyDinh)
Trư
ờng
Đạ
i ọ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 66
- Lược đồ THONGTINDUYET(IdGiaoVien, IdCauHoi, ThoiDiem)
- Lược đồ THAOLUAN(IdThaoLuan, IdGiaoVien, IdCauHoi, NoiDung,
ThoiDiem)
5. Mô hình dữ liệu quan hệ
Sau khi thực hiện các bước chuẩn hóa các tập thực thể và các mối quan hệ ta có
các bảng CSDL sau:
Bảng CAUHOI (Câu hỏi)
Bảng 3.1: Bảng câu hỏi
Thuộc tính Kiểu dữ liệu Diễn giải
IdCauHoiChinhThuc int Mã câu hỏi chính thức
NoiDung nvarchar(max) Nội dung
DoPhanCach real Độ phân cách
NgayTao datetime Ngày tạo
NgayCapNhat datetime Ngày cập nhất
IdGiaThietChung int Mã giả thiết chung
IdLoaiCauHoi int Mã loại câu hỏi
IdMaTranKienThuc int Mã ma trận kiến thức
IdGiaoVien int Mã giáo viên
IdDoKho int Mã độ khó
IdMonHoc int Mã môn học
TyLeDuyet float Tỷ lệ duyệt
TinhTrang nvarchar(50) Tình trạng cần sửa hay không
CongKhai bit Công khai duyệt hay không
Khoa bit Khóa câu hỏi
Bảng CAUTRALOI (Câu trả lời)
Bảng 3.2: Bảng câu trả lời
Thuộc tính Kiểu dữ liệu Diễn giải
IdCauTraLoi int Mã câu trả lời
IdCauHoi int Mã câu hỏi
NoiDung1 nvarchar(max) Nội dung l
NoiDung2 nvarchar(max) Nội dung 2
DapAn bit Đáp án
CoDinh bit Cố định
Trư
ờng
Đạ
i họ
c K
in
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 67
Bảng CHITIETCHUCDANH (Chi tiết chức danh)
Bảng 3.3: Bảng chi tiết chức danh
Thuộc tính Kiểu dữ liệu Diễn giải
IdChucDanh int Mã chức danh
IdGiaoVien int Mã giáo viên
Thời điểm datetime Thời điểm
Bảng CHUCDANH (Chức danh)
Bảng 3.4: Bảng chức danh
Thuộc tính Kiểu dữ liệu Diễn giải
IdChucDanh int Mã chức danh
TenChucDanh nvarchar(50) Tên chức danh
MoTa nvarchar(50) Mô tả
Bảng CHUDE (Chủ đề)
Bảng 3.5: Bảng chủ đề
Thuộc tính Kiểu dữ liệu Diễn giải
IdChuDe int Mã chủ đề
TenChuDe nvarchar(50) Tên chủ đề
IdChuong int Mã chương
MoTa Nvarchar(50) Mô tả
Bảng CHUONG (Chương)
Bảng 3.6: Bảng chương
Thuộc tính Kiểu dữ liệu Diễn giải
IdChuong int Mã chương
TenChuong nvarchar(50) Tên chương
IdMonHoc nvarchar(50) Mã môn học
MoTa nvarchar(50) Mô tả
Bảng DOKHO (Độ khó)
Bảng 3.7: Bảng độ khó
Thuộc tính Kiểu dữ liệu Diễn giải
IdDoKho int Mã độ khó
TenDoKho nvarchar(50) Tên độ khó
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 68
Bảng GIAOVIEN (Giáo viên)
Bảng 3.8: Bảng giáo viên
Thuộc tính Kiểu dữ liệu Diễn giải
IdGiaoVien int Mã giáo viên
TenGiaoVien nvarchar(50) Tên giáo viên
TaiKhoan nvarchar(50) Tài khoản
MatKhau nvarchar(50) Mật khẩu
NgaySinh datetime Ngày sinh
DiaChi nvarchar(50) Địa chỉ
SoDienThoai varchar(50) Số điện thoại
TrangThai bit Trạng thái
IdToBoMon int Mã tổ bộ môn
GhiChu nvarchar(50) Ghi chú
HinhAnh image Hình ảnh
IdQuyen int Mã quyền
Email varchar(50) Địa chỉ Email
Bảng GIATHIETCHUNG (Giả thiết chung)
Bảng 3.9: Bảng giả thiết chung
Thuộc tính Kiểu dữ liệu Diễn giải
IdGiaThietChung int Mã giả thiết chung
NoiDung nvarchar(max) Nội dung
Bảng KHOA (Khoa)
Bảng 3.10: Bảng khoa
Thuộc tính Kiểu dữ liệu Diễn giải
IdKhoa int Mã khoa
TenKhoa nvarchar(50) Tên khoa
MoTa nvarchar(50) Mô tả
Bảng LOAICAUHOI (Loại câu hỏi)
Bảng 3.11: Bảng loại câu hỏi
Thuộc tính Kiểu dữ liệu Diễn giải
IdLoaiCauHoi int Mã loại câu hỏi
TenLoaiCauHoi nvarchar(50) Tên loại câu hỏi
MoTa nvarchar(50) Mô tả
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 69
Bảng MATRANKIENTHUC (Ma trận kiến thức)
Bảng 3.12: Bảng ma trận kiến thức
Thuộc tính Kiểu dữ liệu Diễn giải
IdMaTranKienThuc int Mã ma trận kiến thức
SoCauNhap int Số câu nhập
SoCauQuyDinh int Số câu quy định
IdMucKienThuc int Mã mục kiến thức
IdMucTriNang int Mã mức trí năng
Bảng MONHOC (Môn học)
Bảng 3.13: Bảng môn học
Thuộc tính Kiểu dữ liệu Diễn giải
IdMonHoc int Mã môn
TenMonHoc int Tên môn học
Mô tả nvarchar(50) Mô tả
IdToBoMon int Mã tổ bộ môn
Bảng MUCKIENTHUC (Mục kiến thức)
Bảng 3.14: Bảng mục kiến thức
Thuộc tính Kiểu dữ liệu Diễn giải
IdMucKienThuc int Mã mục kiến thức
TenMucKienThuc nvarchar(250) Tên mục kiến thức
IdChuDe int Mã chủ đề
MoTa nvarchar(50) Mô tả
Bảng MUCTRINANG (Mức trí năng)
Bảng 3.15: Bảng mức trí năng
Thuộc tính Kiểu dữ liệu Diễn giải
IdMucTriNang int Mã mức trí năng
TenMucTriNang nvarchar(50) Tên mức trí năng
Bảng PHANQUYENNHAPCAUHOI (Phân quyền nhập câu hỏi)
Bảng 3.16: Bảng phân quyền nhập câu hỏi
Thuộc tính Kiểu dữ liệu Diễn giải
IdMaTranKienThuc int Mã ma trận kiến thức
IdGiaoVien int Mã giáo viên
SoCauPhaiNhap int Số câu phải nhập
Số câu đã nhập int Số câu đã nhập
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 70
Bảng QUYEN (Quyền)
Bảng 3.17: Bảng quyền
Thuộc tính Kiểu dữ liệu Diễn giải
IdQuyen int Mã quyền
TenQuyen nvarchar(5) Tên quyền
Bảng THAOLUAN (Thảo luận)
Bảng 3.18: Bảng thảo luận
Thuộc tính Kiểu dữ liệu Diễn giải
IdThaoLuan int Mã thảo luận
NoiDung nvarchar(max) Nội dung
ThoiDiem datetime Thời điểm
IdCauHoi int Mã câu hỏi
Bảng THONGTINDUYET (Thông tin duyệt)
Bảng 3.19: Bảng thông tin duyệt
Thuộc tính Kiểu dữ liệu Diễn giải
IdCauHoi int Mã câu hỏi
IdGiaoVien int Mã giáo viên
Thời điểm datetime Thời điểm
Bảng TOBOMON (Tổ bộ môn)
Bảng 3.20: Bảng tổ bộ môn
Thuộc tính Kiểu dữ liệu Diễn giải
IdToBoMon int Mã tổ bộ môn
TenToBoMon nvarchar(50) Tên tổ bộ môn
MoTa int Mô tả
IdKhoa int Mã khoa
Ngoài ra còn có thêm 2 bảng CAUHOICHINHTHUC (Câu hỏi chính thức) và
bảng CAUTRALOICHINHTHUC (Câu trả lời chính thức) có cấu trúc giống với bảng
CAUHOI (Câu hỏi) và bảng CAUTRALOI (Câu trả lời). Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 71
Từ các lược đồ quan hệ trên, ta có mô hình quan hệ dữ liệu sau:
Hình 3.16: Mô hình quan hệ dữ liệu
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 72
3.3. Lưu đồ thuật toán một số quy trình chính
3.3.1. Lưu đồ quy trình tạo câu hỏi
Hình 3.17: Lưu đồ quy trình tạo câu hỏi
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 73
3.3.2. Lưu đồ duyệt câu hỏi
Hình 3.18: Lưu đồ duyệt câu hỏi
3.4. Thiết kế giao diện
Một sản phẩm phần mềm muốn thành công ngoài việc đảm bảo thực hiện được
các chức năng, nghiệp vụ đặt ra ban đầu, còn có một yếu tố khác ảnh hưởng không nhỏ
đến quyết định lựa chọn của khách hàng đó là giao diện của sản phẩm. Các giao diện
của chương trình được thiết kế phải đảm bảo tính đơn giản, đồng nhất, dễ sử dụng và
thân thiện cho người dùng. Và sau đây là một số giao diện chính được xây dựng trong
chương trình:
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 74
3.4.1. Giao diện form đăng nhập hệ thống
Để sử dụng được phần mềm hỗ trợ quy trình xây dựng đề thi trắc nghiệm, người
dùng phải tiến hành đăng nhập hệ thống với tài khoản được cấp bao gồm tên tài khoản
và mật khẩu.
Hình 3.19: Giao diện đăng nhập hệ thống
3.4.2. Giao diện thay đổi thông tin đăng nhập
Hình 3.20: Giao diện thay đổi thông tin đăng nhập
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 75
3.4.3. Giao diện chính của phần mềm
Giao diện chính của phần mềm cho phép người dùng nhìn thấy và sử dụng đầy đủ
các chức năng của chương trình.
Hình 3.21: Giao diện chính của phần mềm
3.3.4. Giao diện soạn câu hỏi
Hình 3.22: Giao diện soạn câu hỏi
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 76
3.4.5. Giao diện duyệt câu hỏi
Hình 3.23: Giao diện duyệt câu hỏi
3.4.6. Giao diện quản lý ngân hàng câu hỏi chính thức
Hình 3.24: Giao diện quản lý ngân hàng câu hỏi chính thức
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 77
3.4.7. Giao diện thông tin người dùng
Hình 3.25: Giao diện thông tin người dùng
3.4.8. Giao diện ma trận kiến thức và phân quyền soạn thảo
Hình 3.26: Giao diện ma trận kiến thức và phân quyền soạn thảo
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ 78
PHẦN 2: KẾT LUẬN
Phương pháp trắc nghiệm khách quan là một phương pháp đánh giả kết quả học
tập có tính khoa học, hiện đại, khách quan, mang lại một phương phương pháp đánh giá
tối ưu. Nắm bắt được những lợi thế của phương pháp, tác giả đã “Xây dựng phần mềm
hỗ trợ quy trình soạn thảo đề thi trắc nghiệm khách quan” và đạt được một số kết quả
nhất định như: Đánh giá được thực trạng các phần mềm hỗ trợ tạo đề thi hiện nay; hiểu
được cách kiểm tra, đánh giá thành quả học tập,phân loại được các mục tiêu giáo dục và
các mức độ của lĩnh vực nhận thức; nắm bắt được các lý thuyết về trắc nghiệm cũng như
xác định được quy trình hỗ trợ tạo đề thi trắc nghiệm khách quan. Tìm hiểu và áp dụng
một số công nghệ, công cụ vào việc “Xây dựng phần mềm hỗ trợ quy trình soạn thảo
đề thi trắc nghiệm khách quan”.
Qua quá trình phân tích, thiết kế và xây dựng, tác giả nhận thấy “Phần mềm hỗ
trợ quy trình soạn thảo đề thi trắc nghiệm khách quan” của khóa luận có nhiều sự
khác biệt cũng như ưu điểm so với các sản phẩm khác như tuân thủ quy trình của một
phần mềm hỗ trợ tạo đề thi; quản lý, phân định rõ ràng quyền hạn trong hệ thống; soạn
câu hỏi với nhiều dạng câu hỏi khác nhau; hỗ trợ các kí tự đặc biệt, hình ảnh, bảng biểu;
giao diện trực quan, dễ sử dụng bởi sự hỗ trợ của Devexpress,quản lý hiệu quả ngân
hàng câu hỏi trắc nghiệm sơ bộ lẫn chính thức, đồng thời trang bị chức năng thảo luận,
kiểm duyệt khá mới mẻ vào hệ thống.
Tuy nhiên, bên cạnh những ưu điểm nổi trội vẫn còn tồn tại một số hạn chế như
chưa soạn thảo câu hỏi theo mẫu quy định từ MS Word, chưa kết xuất ngân hàng câu hỏi
kèm theo đáp án ra tệp MS Word để lưu trữ, việc lưu trữ nội dung câu hỏi, đáp án, giả
thiết chung dưới dạng file Rtf làm cho dung lượng lưu trữ lớn, phình CSDL.
Do đó, trong thời gian tới, đề tài sẽ tiếp tục nghiên cứu và hỗ trợ thêm nhiều dạng
câu hỏi trắc nghiệm theo chuẩn IMS; phát triển thêm chức năng soạn câu hỏi theo mẫu
định và kết xuất nội dung câu hỏi, đáp án ra MS Word để lưu trữ; xây dựng cách lưu trữ
mới cho dữ liệu dưới dạng XML đồng thời hướng đến một phần mềm mở đa nền tảng, có
thể quản lý trên web lẫn di động.
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ
DANH MỤC TÀI LIỆU THAM KHẢO
1. Dương Thiệu Tống, Trắc nghiệm và đo lường thành quả học tập (Tập 1), Trường
ĐHTH TP.HCM, xuất bản năm 1995.
2. Dương Thiệu Tống, Trắc nghiệm và đo lường thành quả học tập (Tập 2), Trường
ĐHTH TP.HCM, xuất bản năm 1998.
3. Dương Quang Thiện, Lập trình Visual C# như thế nào? Toàn tập, Nhà xuất bản
Tổng hợp TP.HCM, năm 2005.
4. GS.TSKH Lâm Quang Thiệp, bài báo Đo lường và đánh giá thành quả học tập
trong các trường Cao Đẳng và Đại học.
5. Mai Hải Thanh; Đào Phương Thúy, 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 Khoa Công nghệ Thông
tin – Trường Đại học Khoa học Tự nhiên, năm 2005.
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ
PHỤ LỤC
Code lớp DataProvider: lớp thực hiện việc kết nối và truy vấn
dữ liệu
static SqlConnection cn;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
if (cn != null)
{
cn.Dispose();
cn = null;
}
}
~DataProvider()
{
Dispose(false);
}
public void KetnoiCSDL()
{
if ((cn == null) || (cn.State == ConnectionState.Closed))
{
try
{
cn = new SqlConnection(@"Data Source=112.213.91.246;Initial
Catalog=qm_test;Persist Security Info=True;User ID=qmtest;Password=25292");
cn.Open();
}
catch (SqlException se)
{
XtraMessageBox.Show("Lỗi kết nối - Xem hổ trợ", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
XtraMessageBox.Show(se.Message);
}
}
}
public void Ngatketnoi()
{
cn.Close();
cn = null;
}
public DataTable SQL_Laydulieu(string tenSP)
{
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Khóa luận tốt nghiệp
Sinh viên thực hiện: Trần Tuấn Mỹ
SqlCommand cmd = new SqlCommand(tenSP, cn) { CommandType =
CommandType.StoredProcedure };
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
cmd.Dispose(); da.Dispose(); dt.Dispose();
return dt;
}
public DataTable SQL_Laydulieu(string tenSP, string[] name, object[] value, int
Npara)
{
SqlCommand cmd = new SqlCommand(tenSP, cn) { CommandType =
CommandType.StoredProcedure };
for (int i = 0; i < Npara; i++)
{
cmd.Parameters.AddWithValue(name[i], value[i]);
}
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
cmd.Dispose(); da.Dispose(); dt.Dispose();
return dt;
}
public int SQL_Thuchien(string tenSP, string[] name, object[] value, int Npara)
{
SqlCommand cmd = new SqlCommand(tenSP, cn) { CommandType =
CommandType.StoredProcedure };
for (int i = 0; i < Npara; i++)
{
cmd.Parameters.AddWithValue(name[i], value[i]);
}
cmd.Dispose();
return cmd.ExecuteNonQuery();
}
Trư
ờng
Đạ
i họ
c K
inh
tế H
uế
Các file đính kèm theo tài liệu này:
- tran-tuan-my-8589.pdf