3.2 THIẾT KẾ HỆ THỐNG LOẠI BỎ MẨU TIN NHÂN BẢN THỪA TRONG
3.2.1 Xây dựng các lớp đối tượng
3.2.1.1 Mô hình tương tác lớp
Căn cứ vào luồng xử lý hệ thống và các tầng xử lý của hệ thống đã xây dựng ở mục 5.1 ta xác định được các lớp đối tượng như sau.
(1) Gói Rule engine
Gói Rule engine bao gồm những lớp chuyên xử lý việc đọc, phân tích và xử lý các luật. Các luật được lưu dưới dạng file XML.
STT Tên lớp Mô tả
01 clsRuleReader Lớp chuyên xử lý việc đọc các luật từ file XML
02
clsRuleEngine Tách luật lấy từ file XML thành các toán tử, toán hạng
03
clsExpressionEvaluator Phân tích cú pháp các luật
04 clsProxy Giao tiếp giữa gói rule engine với các gói khác
Bảng 3-2 Các lớp thuộc gói Rule Engine
(2) Gói Process
Gói Process chứa các lớp thực hiện giải thuật nhận diện bản ghi nhân bản thừa như thuật toán đã trình bày ở Chương 2. Gói Process gồm các lớp như bảng dưới đây.
STT Tên lớp Mô tả
01 clsDAO Xử lý các thao tác liên quan tới CSDL như: lấy dữ liệu, cập nhật dữ liệu, mở kết nối…
02 clsDeduplicate Thực hiện thuật toán đã nêu ở Phần 2
03 frmExecute Giao diện chính thực hiện nhận diện bản ghi nhân bản thừa.
04 frmSetting Giao diện dùng để thiết lập thông số cho hệ thống
05 frmSuspectRecords
Giao diện hiển thị những bản ghi nghi ngờ nhân bản thừa và thực hiện xóa bản ghi nếu người dùng yêu cầu.
Bảng 3-3 Các lớp thuộc gói Process
3.2.1.2 Mô tả chi tiết các lớp đối tượng
(1) Lớp clsRuleReader
STT Thuộc tính Kiểu dữ liệu Phạm vi Mô tả
01 Rules clsRule private Các luật lấy từ file XML 02 FileName String private Tên file XML có chứa các luật
Bảng 3-4 Bảng thuộc tính của lớp clsRuleReader
STT Tên phương
thức
Kiểu trả về Phạm vi Mô tả
01 GetRules N/A public Lấy các luật từ file XML
Bảng 3-5 Bảng các phương thức của lớp clsRuleReader
(2) clsRuleEngine
STT Thuộc tính Kiểu dữ liệu Phạm vi Mô tả
01 Expression clsExpressionEvaluator private Các luật đã được phân tích
02 Rules clsRules private Các luật chưa được phân tích
STT Tên phương thức Kiểu trả
về
Phạm vi Mô tả
01 SortRules N/A private
Sắp xếp các luật theo thứ tự giảm dần của hệ số chắc chắn
02 CompareRulesByActions int private So sánh hệ số chắc chắn của các luật
03 GetAttributes string public Lấy các thuộc tính có trong các luật
04 GetRules string public Lấy các luật
05 GetUperThreshold float public
Lấy cận trên tương đối để xác định nhân bản thừa.
06 GetLowerThreshold float public
Lấy cận dưới tương đối để xác định nhân bản thừa.
(3) clsExpressEvaluator
STT Tên phương thức Kiểu trả về Phạm vi Mô tả
01 Parse clsSymbol public Phân tích cú pháp của luật
02 IsComplicate bool private
03 IsFactAtt bool private Kiểm tra xem có phải là toán hạng hay không 04 IsBoolean bool private Kiểm tra xem có phải là giá
trị boolean hay không 05 IsNumber bool private Kiểm tra xem có phải là số
hay không
06 IsString bool private Kiểm tra xem có phải là chuỗi hay không
07 IsOpenParanthesis bool private Kiểm tra xem có phải là dấu mở ngoặc đơn hay không 08 IsCloseParanthesis bool private Kiểm tra xem có phải là dấu
đóng ngoặc đơn hay không 09 IsOperator bool private Kiểm tra xem có phải là
phép toán hay không
10 IsFunction bool private Kiểm tra xem có phải là một hàm hay không
(4) clsProxy
Lớp clsProxy có vai trò trung gian, là lớp để gói Rule engine giao tiếp với các gói khác. STT Tên phương thức Kiểu trả về Phạm vi Mô tả
01 GetAttributes string public Lấy các thuộc tính có trong các luật
02 GetRules string public Lấy các luật
03 GetUperThreshold float public Lấy cận trên tương đối để xác định nhân bản thừa.
04 GetLowerThreshold float public Lấy cận dưới tương ứng để xác định nhân bản thừa.
Bảng 3-9 Bảng các phương thức của lớp clsProxy
(5) clsDeduplicate
STT Thuộc tính Kiểu dữ liệu Phạm vi Mô tả
01 Tables Dataset private Dữ liệu cần được làm
sạch
STT Tên phương thức Kiểu trả về
Phạm vi Mô tả
01 CalculateCF N/A private Tính toán hệ số chắc chắn của mỗi bản ghi
02 ProcessDuplicate N/A public Phương thức chính xử lý các thao tác liên quan tới xác định bản ghi nhân bản thừa.
03 WriteLogFile N/A public Ghi những bản ghi nghi ngờ ra log file
04 FetchData N/A private Lấy dữ liệu từ CSDL để xử lý 05 DetermineDuplicate N/A private Thực hiện thuật toán nhận
diện bản ghi nhân bản thừa trình bày ở Phần 2
06 CheckSingleRecord int priavte Kiểm tra xem bảng cần xử lý có những bản ghi nghi ngờ là nhân bản hay không.
07 RemoveRedundantCols N/A private Xóa bỏ những cột tạm sinh ra trong quá trình xử lý
08 GetRules string private Gọi hàm GetRues của lớp clsProxy
09 GetAttributes string private Gọi hàm GetAttributes của lớp clsProxy
Bảng 3-11 Bảng các phương thức của lớp clsDeduplicate
(6) clsDAO
STT Thuộc tính Kiểu dữ liệu Phạm vi Mô tả
01 ConnectionString string private Thông tin để thiết lập kết nối tới CSDL
STT Tên method Kiểu trả
về
Phạm
vi
Mô tả
01 ConnecToDB bool public Tạo kết nối tới CSDL 02 FetchData bool public Lấy dữ liệu từ một bảng đã
cho
03 UpdateData bool public Cập nhập dữ liệu của một bảng đã cho
04 DeleteData bool public Xóa dữ liệu trong một bảng 05 OpenConnection bool public Mở kết nối
06 CloseConnection bool public Đóng kết nối
07 BackupData bool public Tạo bảng backup dữ liệu
Bảng 3-13 Bảng các phương thức của lớp clsDAO
(7) frmExecute
STT Thuộc tính Kiểu dữ liệu Phạm vi Mô tả
01 cmdLog_Click N/A private Thực hiện ghi các bản
ghi nhân bản thừa ra file .CSV
02 cmdStart_Click N/A private Thực hiện quá trình xử lý nhận diện bản ghi nhân bản thừa. Phương thức này sử dụng các method của lớp clsDeduplicate
03 cmdRemove_Click N/A private Loại bỏ những bản ghi nhân bản thừa theo yêu cầu của người dùng
(7) frmSetting
STT Thuộc tính Kiểu dữ liệu Phạm vi Mô tả
01 WriteSetting N/A private Ghi những cài đặt cho người dùng thiết lập ra file
02 GetSetting N/A private Lấy những thiết đặt của người dùng đã tạo từ file và hiển thị trên form