Tài khoản gồm những thông tin sau:+ Tên tài khoản + Mật khẩu+ Loại tài khoản Quản lý cán bộ Dựa trên những thông tin đã có và được các đơn vị báo cáo bổ sung về ĐộiTổng hợp thuộc Phòng H
KHẢO SÁT HỆ THỐNG QUẢN LÝ THÔNG TIN CÁN BỘ TẠI TRƯỜNG ĐẠI HỌC KỸ THUẬT - HẬU CẦN CAND
Phát biểu bài toán
Hiện tại, việc quản lý cán bộ tại Trường T07 đang được phòng Hành chính
& Tổng hợp thực hiện Sau khi các đơn vị trong trường T07 tổng hợp thống kê, thông tin sẽ được báo cáo qua phòng Hành chính & Tổng hợp để thực hiện tổng hợp Sau đó, thông tin cán bộ được lưu trữ trong các tệp hồ sơ và file Word để quản lý.
Gần đây, với sự tăng cường công việc tại trường T07, việc duy trì kỷ luật và kỷ cương trong Nhà trường đang nhận được sự quan tâm và chỉ đạo từ Đảng uỷ và lãnh đạo đơn vị, nhu cầu liên kết công tác giữa các đơn vị cũng tăng lên Đối mặt với thách thức này, câu hỏi quan trọng là làm thế nào để xây dựng hệ thống quản lý cán bộ một cách hiệu quả Điều này giúp quản lý, thống kê thông tin cán bộ một cách chính xác, kịp thời và khoa học
Dựa trên các đặc trưng và hoạt động chủ yếu xuất phát từ thực tế, và với những yêu cầu mới đặt ra đối với quản lý cán bộ, nhóm học viên đề xuất xây dựng
“Phần mềm quản lý thông tin cán bộ tại trường Đại học Kỹ thuật - Hậu cầnCAND” một cách logic, hiệu quả và khoa học Điều này sẽ đáp ứng được các nhu cầu trong quản lý và thống kê thông tin cán bộ, góp phần nâng cao chất lượng công
Mỗi cán bộ phụ trách quản lý thông tin của các Phòng, Khoa trong đơn vị sẽ được cấp một tài khoản Cán bộ phụ trách phải thay đổi mật khẩu trong lần đăng nhập đầu tiên.
Tài khoản gồm những thông tin sau:
+ Tên tài khoản + Mật khẩu + Loại tài khoản
Dựa trên những thông tin đã có và được các đơn vị báo cáo bổ sung về Đội Tổng hợp thuộc Phòng Hành chính & Tổng hợp, được cán bộ quản lý cập nhật lên hệ thống Quản lý cán bộ gồm 02 loại sau:
+ Cán bộ thuộc biên chế + Cán bộ không thuộc biên chế
Cán bộ thuộc biên chế có các thông tin gồm:
+ Họ tên+ Số hiệu+ Ngày sinh+ Giới tính+ Dân tộc
+ Chức vụ + Đơn vị + Quê quán + Nơi ở hiện nay + Ngày vào ngành + Ngày vào Đảng + Ngày chính thức + Chức danh + Trình độ + Lý luận chính trị + Ngoại ngữ
+ Tin học + Khen thưởng + Kỷ luật
Cán bộ không thuộc biên chế có các thông tin gồm:
+ Họ tên+ Số hiệu+ Ngày sinh
+ Nơi ở hiện nay + Ngày vào ngành + Ngày vào Đảng + Ngày chính thức + Chức danh + Trình độ + Lý do xoá
Cho phép người quản trị tiến hành quản lý các thông tin liên quan đến danh sách cán bộ bao gồm: Thêm, sửa, xóa, làm mới thông tin cán bộ đối với cán bộ thuộc biên chế và khôi phục, hoặc xóa đối với cán bộ không thuộc biên chế.
Danh sách đơn vị sẽ gồm các thông tin sau:
+ Mã đơn vị + Tên đơn vị + Quân số
Người dùng tiến hành quản lý các thông tin liên quan đến đơn vị như: Tìm kiếm, thêm, sửa, xóa, làm mới
Thực hiện thống kê và báo cáo theo yêu cầu, hệ thống sẽ tổng hợp và báo cáo về số liệu, kết quả của cán bộ chiến sỹ, dựa trên một trong những thông tin sau: đơn vị, cấp bậc hàm, trình độ, lý luận chính trị, số hiệu
Mỗi cán bộ, chiến sĩ sẽ được cấp một tài khoản để sử dụng Người dùng sẽ sử dụng tài khoản được cấp để đăng nhập vào phần mềm Sau khi thực hiện thao tác đăng nhập, phần mềm sẽ kiểm tra xem người đăng nhập là Người dùng hay là
Người quản trị, từ đó trả về form có chức năng tương ứng trong hệ thống Thông tin về tài khoản bao gồm :
+ Tên tài khoản + Mật khẩu + Loại tài khoản
Trong khuôn khổ thời gian có hạn, nhóm học viên sẽ xây dựng “Phần mềm quản lý thông tin cán bộ tại trường Đại học Kỹ thuật - Hậu cần CAND” với người quản lý là cán bộ phụ trách công tác cán bộ tại phòng Hành chính & Tổng hợp.
1.1.4 Mục đích xây dựng hệ thống
Sự bùng nổ của cách mạng 4.0 khiến yêu cầu xử lý công việc càng ngày càng cần nhanh gọn và chính xác hơn Với quy mô trường T07 hơn 300 cán bộ chiến sĩ, đồng thời trong 03 năm trở lại đây trường T07 đối mặt với thách thức của việc quản lý một lượng lớn nhân sự và thông tin liên quan.
Qua việc triển khai phần mềm quản lý thông tin cán bộ tại trường T07 sẽ tăng cường sự thông suốt, nhanh chóng trong công tác quản lý và các vấn đề liên quan đến công tác cán bộ của các đơn vị Đồng thời, hệ thống này sẽ giúp việc kiểm tra của cán bộ và lãnh đạo trở nên dễ dàng hơn.
Hệ thống sẽ hỗ trợ CBCS trong quá trình thực hiện các thay đổi, bổ sung giấy tờ Sau quá trình khảo sát, nhóm học viên đã đưa ra nhận xét như sau về công tác quản lý cán bộ hiện tại.
* Ưu điểm quản lý thông tin cán bộ bằng phương pháp thủ công
- Các công đoạn hiện đang được thực hiện thủ công, đơn giản, dễ sử dụng và mang lại tiết kiệm kinh phí.
- Quá trình quản lý và lưu trữ ít phát sinh lỗi.
- Việc sử dụng bảng tin, thủ công không đòi hỏi kinh phí cao.
* Nhược điểm quản lý thông tin cán bộ bằng phương pháp thủ công
- Việc thay đổi thông tin về CBCS đôi khi không được cập nhật kịp thời, ảnh hưởng đến các bộ phận khác và gây khó khăn trong quá trình liên hệ công tác.
- Trong trường hợp cần xử lý nhanh chóng và yêu cầu thống kê, báo cáo, phương pháp thủ công có thể dẫn đến mất thời gian, công sức và gặp khó khăn trong quản lý.
- Thiếu đồng bộ trong quá trình quản lý thông tin có thể dẫn đến sai sót, không tự động cập nhật thông tin mới về CBCS.
Yêu cầu đối với hệ thống quản lý thông tin cán bộ tại trường T07
Hệ thống phải được thiết kế, xây dựng các chức năng nhằm đảm bảo yêu cầu của công tác quản lý, trong đó bao gồm các chức năng cơ bản sau:
- Chức năng quản lý tài khoản - Chức năng quản lý cán bộ - Chức năng quản lý đơn vị - Chức năng thống kê - Chức năng đăng nhập
Bên cạnh đó là các chức năng đảm bảo ATTT của hệ thống, chức năng sao lưu và khôi phục dữ liệu trong phần mềm.
1.2.2 Yêu cầu phi chức năng
Yêu cầu phi chức năng gồm các yêu cầu sau:
- Cấu hình phần cứng của các máy tính - nơi cài đặt phần mềm, phải đáp ứng
- Hệ thống phải hoạt động ổn định và có khả năng xử lý nhanh chóng mọi yêu cầu từ CBCS.
- Bảo mật, hệ thống phải có khả năng bảo vệ chặt chẽ, ngăn chặn bất kỳ đối tượng truy cập bất hợp pháp nào vào phần mềm.
- Phân quyền, hệ thống phải hỗ trợ chức năng phân quyền, giúp xác định và giới hạn quyền truy cập cụ thể cho từng CBCS sử dụng, dựa trên các chức năng và dữ liệu cụ thể.
- Đảm bảo rằng việc triển khai phần mềm trên các máy tính tuân theo cấu hình phần cứng được đề xuất và có đủ không gian lưu trữ, giúp tránh tình trạng không đồng bộ giữa các máy tính và đảm bảo sự đồng nhất trong việc sử dụng phần mềm.
- Thời gian hoạt động liên tục của hệ thống là quan trọng để đáp ứng mọi nhu cầu CBCS, đặc biệt trong các tình huống quan trọng hoặc khẩn cấp.
Trong chương 1, nhóm đã nêu ra một số nội dung cụ thể như sau:
- Tổng quan chung về quy trình quản lý cán bộ tại nhà trường hiện nay.
- Quy trình thực hiện công tác quản lý thông tin cán bộ tại trường T07.
- Thực trạng việc quản lý thông tin cán bộ trong phạm vi nhà trường từ đó phân tích ưu, nhược điểm của cách quản lý hiện tại và đề xuất giải pháp xây dựng hệ thống để khắc phục những nhược điểm đó.
- Nêu lên các yêu cầu chức năng và yêu cầu phi chức năng đối với hệ thống quản lý thông tin cán bộ tại trường T07.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG QUẢN LÝ THÔNG TIN CÁN BỘ TẠI TRƯỜNG ĐẠI HỌC KỸ THUẬT - HẬU CẦN CAND
Mô hình hoá chức năng
Qua khảo sát, nhóm học viên đã xác định được hai tác nhân chính tham gia vào hệ thống quản lý thông tin cán bộ tại trường T07, cụ thể như sau:
Bảng 2.1 Các tác nhân tham gia vào hệ thống quản lý thông tin cán bộ tại trường T07
T Tên tác nhân Mô tả
1 Người quản trị (Cán bộ phụ trách quản lý thông tin tại Đội Tổng hợp, phòng Hành chính
Người quản trị là cán bộ làm công tác tổ chức thuộc phòng hành chính tổng hợp có nhiệm vụ quản lý cán bộ, quản lý đơn vị, quản lý tài khoản và thống kê báo cáo Người quản trị được toàn quyền sử dụng các chức năng của hệ thống.
2 Người dùng (cán bộ, giảng viên trường T07)
Tài khoản người dùng có các quyền: Xem danh sách cán bộ, danh sách đơn vị, đổi mật khẩu.
2 1.2 Xác định các use case
Bài toán phân tích thiết kế hệ thống quản lý thông tin cán bộ tại Trường T07 gồm các use case sau:
Bảng 2.2 Mô tả các use case
T Tên use case Mô tả
1 Quản lý cán bộ thuộc biên chế
Cho phép người quản trị tiến hành quản lý các thông tin liên quan đến CBCS đang công tác tại đơn vị bao gồm thêm, sửa, xóa, tìm kiếm CBCS.
Người dùng chỉ có chức năng xem, tìm kiếm.
Quản lý cán bộ không thuộc biên chế
Cho phép người quản trị tiến hành quản lý các thông tin liên quan đến danh sách cán bộ đã chuyển công tác, thôi việc hoặc nghỉ hưu, bao gồm xóa, khôi phục lại cán bộ nếu CBCS đó đã chuyển công tác sau đó được phân công về lại đơn vị Người dùng chỉ có chức năng xem, tìm kiếm.
Cho phép người quản trị tiến hành quản lý các thông tin liên quan đến các khoa và các phòng ban chức năng Thêm, sửa, xóa đơn vị, xem danh sách CBCS trong đơn vị Người dùng chỉ có chức năng xem, tìm kiếm.
Cho phép người quản trị tiến hành quản lý các thông tin liên quan đến tài khoản bao gồm thêm,sửa, xóa, đổi mật khẩu Người dùng chỉ có chức năng đổi mật khẩu.
6 Đăng nhập Cho phép người quản trị, người dùng đăng nhập và sử dụng các chức năng trong hệ thống.
2.1.3 Biểu đồ use case tổng quát
Hình 2.1 Biểu đồ use case tổng quát
2 1.4 Biểu đồ use case chi tiết
- Xây dựng biểu đồ use case đăng nhập.
Hình 2.2 Biểu đồ use case đăng nhập
- Xây dựng biểu đồ use case quản lý tài khoản.
Hình 2.3 Biểu đồ use case quản lý tài khoản
- Xây dựng biểu đồ use case thống kê báo cáo.
Hình 2.4 Biểu đồ use case thống kê báo cáo
- Xây dựng biểu đồ use case quản lý cán bộ thuộc biên chế.
Hình 2.5 Biểu đồ use case Quản lý cán bộ thuộc biên chế
- Xây dựng biểu đồ use case quản lý cán bộ không thuộc biên chế.
Hình 2.6 Biểu đồ use case Quản lý cán bộ không thuộc biên chế
- Xây dựng biểu đồ use case quản lý đơn vị.
Hình 2.7 Biểu đồ use case quản lý đơn vị
2.1.5 Quy trình nghiệp vụ 2.1.5.1 Quy trình sử dụng phần mềm
Người dùng đăng nhập vào hệ thống để sử dụng các chức năng của phần mềm Nếu người dùng nhập sai thông tin đăng nhập, hệ thống sẽ yêu cầu người dùng nhập lại thông tin đúng để đăng nhập vào hệ thống Sau khi đăng nhập thành công vào hệ thống, người quản trị, người dùng có thể sử dụng các chức năng như xem và cập nhật thông tin cá nhân, thay đổi mật khẩu và các chức năng khác được cho phép.
Hình 2.8 Quy trình sử dụng phần mềm
2.1.5.2 Quy trình quản lý cán bộ thuộc biên chế
Người quản trị có thể quản lý cán bộ đang công tác theo các bước: Người quản trị đăng nhập vào hệ thống Sau đó người quản trị có thể suất danh sách thông tin cán bộ thuộc biên chế theo các trường dữ liệu như trình độ, cấp bậc hàm, đơn vị, sau khi xuất danh sách có thể chỉnh sửa thông tin chi tiết của một cán bộ nào đó và cập nhật lại thông tin.
2.1.6 Đặc tả các use case
- Mục đích: xác thực tài khoản và đảm bảo tính bảo mật cho hệ thống được xây dựng.
- Tác nhân: người quản trị, người dùng.
- Mô tả: mỗi tài khoản phải đăng nhập thành công trước khi sử dụng hệ thống.
+ Tác nhân thực hiện các hành động sau:
Chọn chức năng đăng nhập vào hệ thống.
Nhập tên tài khoản, mật khẩu.
Gửi thông tin đến hệ thống.
+ Phản hồi từ hệ thống
Hiển thị form đăng nhập.
Kiểm tra thông tin người dùng đã nhập vào CSDL, nếu dữ liệu trùng khớp thì cho phép tài khoản đó có thể thực hiện thao tác với hệ thống theo quyền hạn đã được chỉ định, nếu sai hệ thống sẽ hiển thị thông báo và yêu cầu nhập lại thông tin đăng nhập.
* Use case quản lý tài khoản
- Mục đích: Cán bộ quản lý tiến hành phân quyền cho các tài khoản của cán bộ tiếp nhận thông tin, người dùng Quản lý và lưu giữ thông tin về tài khoản trên hệ thống.
- Tác nhân: người quản trị, người dùng.
- Mô tả: Sau khi đăng nhập vào hệ thống, cán bộ quản lý sẽ có thể thực hiện các thao tác trong việc quản lý tài khoản.
+ Tác nhân thực hiện các hành động sau:
Tiến hành các hoạt động trên thao tác đã chọn.
Gửi yêu cầu tới hệ thống.
+ Phản hồi từ hệ thống:
Hiển thị form thông báo về thao tác.
Trả về kết quả giá trị theo yêu cầu truy xuất.
2.2 Mô hình hóa hành vi
Hình 2.10 Biểu đồ trình tự cho quá trình đăng nhập
Hình 2.11 Biểu đồ trình tự cho quá trình thêm cán bộ
Hình 2.13 Biểu đồ trình tự quá trình sửa thông tin cán bộ
Hình 2.15 Biểu đồ cộng tác cho quá trình xóa cán bộ
Hình 2.16 Biểu đồ cộng tác cho quá trình sửa thông tin cán bộ
2.3 Mô hình hoá cấu trúc
Bảng 2.3 Danh sách các thuộc tính của lớp “Taikhoan”
3 Role Loại tài khoản (“1” là admin, “0” là user)
Bảng 2.4 Danh sách các phương thức của lớp “Taikhoan"
STT Phương thức Mô tả
4 Timkiem() Tìm kiếm tài khoản
Bảng 2.5 Danh sách thuộc tính của lớp “Canbothuocbienche”
1 Sohieu Số hiệu cán bộ
2 Tencanbo Họ tên cán bộ
4 Ngaysinh Ngày tháng năm sinh
6 Chucvu Chức vụ cán bộ
Bảng 2.6 Danh sách các phương thức của lớp “Canbothuocbienche”
STT Phương thức Mô tả
1 Them() Thêm thông tin cán bộ
2 Sua() Sửa thông tin cán bộ
3 Xoa() Xóa thông tin cán bộ
4 Timkiem() Tìm kiếm cán bộ
Bảng 2.7 Danh sách các thuộc tính của lớp “Chitietcanbo”
1 SoHieu Số hiệu cán bộ
15 Duongdananh Đường dẫn ảnh đại diện
18 Lyluanct Lý luận chính trị
Bảng 2.8 Danh sách các phương thức của lớp “Chitietcanbo”
STT Phương thức Mô tả
1 Capnhat() Cập nhật thông tin cán bộ
Bảng 2.9 Danh sách các thuộc tính của lớp “Canbokhongthuocbienche”
1 SoHieu Số hiệu cán bộ
7 NgayvaoCA Ngày vào Công an
9 Ngaychinhthuc Ngày vào đảng chính thức
18 Lyluanct Lý luận chính trị
Bảng 2.10 Danh sách các phương thức của lớp “Canbokhongthuocbienche”
STT Phương thức Mô tả
1 Khoiphuc() Khôi phục vào danh sách cán bộ đang công tác
3 Timkiem() Tìm kiếm cán bộ
Bảng 2.11 Danh sách các thuộc tính của lớp “Donvi”
Bảng 2.12 Danh sách các phương thức của lớp “Donvi”
STT Phương thức Mô tả
4 Timkiem() Tìm kiếm đơn vị
Bảng 2.13 Danh sách các thuộc tính của lớp “Thongkebaocao”
4 Lyluanchinhtri Lý luận chính trị
Bảng 2.14 Danh sách các phương thức của lớp “Thongkebaocao”
STT Phương thức Mô tả
1 ThongketatcaCBCS() Thống kê tất cả CBCS
2 Thongketheotrinhdo() Thống kê theo trình độ
3 Thongketheocapbac() Thống kê theo cấp bậc
) Thống kê theo thông tin CBCS
3 Thongketheodonvi() Thống kê theo đơn vị
Thiết kế cơ sở dữ liệu
2.4.1 Thiết kế các bảng cơ sở dữ liệu
ST Thuộc tính Ý nghĩa Kiểu dữ liệu Ràng buộc
ST T Thuộc tính Ý nghĩa Kiểu dữ liệu Ràng buộc
1 Madonvi Mã đơn vi Int Khóa chính
2 Tendonvi Tên đơn vị Nvarchar(100
ST T Thuộc tính Ý nghĩa Kiểu dữ liệu Ràng buộc
1 Sohieu Số hiệu Varchar(7) Khóa chính
2 Tencanbo Họ tên cán bộ Nvarchar(50)
4 Namsinh Ngày tháng năm sinh date
7 MaDonvi Mã đơn vị Int Khóa ngoại
STT Thuộc tính Ý nghĩa Kiểu dữ liệu Ràng buộc
1 Sohieu Số hiệu cán bộ Varchar(7) Khóa chính, khóa ngoại
4 NgayvaoCA Ngày vào Công an Date
5 Ngayvaodang Ngày vào đảng Date
6 Ngaychinhthuc Ngày chính thức Date
9 Duondananh Đường dẫn ảnh đại diện Nvarchar(100)
12 Lyluanct Lý luận chính trị Nvarchar(50)
STT Thuộc tính Ý nghĩa Kiểu dữ liệu Ràng buộc
1 Sohieu Số hiệu cán bộ Varchar(7) Khóa chính, khóa ngoại
3 Noiohiennay Nơi ở hiện nay Nvarchar(100)
10 Lydoxoa Lý do xóa Nvarchar(100)
12 Lyluanct Lý luận chính trị Nvarchar(50)
2.4.2 Lược đồ quan hệ cơ sở dữ liệu
Hình 2.18 Lược đồ cơ sở dữ liệu
Trong chương 2, nhóm đã tiến hành phân tích thiết kế hệ thống với những nội dung sau:
- Phát biểu bài toán, quy trình nghiệp vụ và phạm vi của bài toán quản lý thông tin cán bộ tại trường T07.
- Xác định các tác nhân và các use case trong hệ thống; vẽ biểu đồ use case tổng quát và use case chi tiết trong hệ thống.
- Mô hình hóa hành vi: xây dựng biểu đồ trình tự, biểu đồ cộng tác, biểu đồ trạng thái, biểu đồ hoạt động cho các chức năng và đối tượng trong hệ thống.
- Mô hình hóa cấu trúc: Xác định các lớp đối tượng, thiết kế cơ sở dữ liệu cho hệ thống.
KỸ THUẬT XÂY DỰNG PHẦN MỀM QUẢN LÝ THÔNG TIN CÁN BỘ TẠI TRƯỜNG ĐẠI HỌC KỸ THUẬT - HẬU CẦN CAND
Mô hình 3 lớp
3.1.1 Các thành phần mô hình 3 lớp
Khi làm việc với các ứng dụng, nếu với những dự án nhỏ thì việc tạo ra một ứng dụng theo ý của chúng ta không có gì khó khăn nhưng mà khi đối mặt với dự án lớn hơn cần nhiều người cùng làm hơn thì việc lập trình trở nên phức tạp hơn,vậy nên để dễ dàng hơn trong việc quản lý các thành phần của hệ thống cũng như ảnh hưởng tới các thành phần khác khi ta thay đổi một thành phần, chúng ta thường nhóm các thành phần có cùng chức năng lại với nhau Chính vì thế các mô hình lập trình được sinh ra, một trong những mô hình lập trình đó là mô hình 3 lớp (3-Layer).
Mô hình 3 lớp được cấu thành từ 3 lớp: Presentation Layer , Business Layer và Data Laye r, các lớp hoạt động riêng rẽ với nhau lớp này hoạt động riêng rẽ với nhau không cần biết lớp kia làm gì chỉ cần biết lớp kia cung cấp cho nó dịch vụ gì
- Presentation Layer (GUI): Lớp này có nhiệm vụ chính giao tiếp với người dùng Nó gồm các thành phần giao diện (win form, web form,…) và thực hiện các công việc như nhập liệu, hiển thị dữ liêu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer (BLL).
- Business Logic Layer (BLL): Layer này phân ra 2 thành nhiệm vụ:
Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý chính nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị CSDL.
Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về Presentation Layer.
- Data Access Layer (DAL): Lớp này có chức năng giao tiếp với hệ quản trịCSDL như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu (tìm Ưu điểm:
- Việc phân chia thành từng lớp giúp cho code được tường minh hơn Nhờ vào việc chia ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt như giao diện, xử lý, truy vấn thay vì để tất cả lại một chỗ Nhằm giảm sự kết dính.
- Dễ bảo trì khi được phân chia, thì một thành phần của hệ thống sẽ dễ thay đổi Việc thay đổi này có thể được cô lập trong 1 lớp, hoặc ảnh hưởng đến lớp gần nhất mà không ảnh hưởng đến cả chương trình.
- Dễ phát triển, tái sử dụng: khi chúng ta muốn thêm một chức năng nào đó thì việc lập trình theo một mô hình sẽ dễ dàng hơn vì chúng ta đã có chuẩn để tuân theo Và việc sử dụng lại khi có sự thay đổi giữa hai môi trường (Winform sang Webform) thì chỉ việc thay đổi lại lớp GUI.
- Dễ bàn giao: Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thì việc bàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm được nhiều thời gian.
- Dễ phân phối khối lượng công việc: Mỗi một nhóm, một bộ phận sẽ nhận một nhiệm vụ trong mô hình 3 lớp Việc phân chia rõ ràng như thế sẽ giúp các lập trình viên kiểm soát được khối lượng công việc của mình.
3.1.2 Cấu tạo, chức năng của các lớp
Hình 3.2 Giao diện tương tác trực tiếp với người dùng
Gồm các thành phần tạo nên giao diện của ứng dụng (GUI) Chúng chịu trách nhiệm thu nhận và hiển thị dữ liệu cho người dùng,…Ví dụ: textbox, button, combobox, …
Hình 3.3 Các tầng của lớp Business Layer
Lớp này gồm 4 thành phần:
- Bussiness workflows: chịu trách nhiệm xác định và điều phối các quy trình nghiệp vụ gồm nhiều bước và kéo dài Những quy trình này phải được sắp xếp và thực hiện theo một thứ tự chính xác.
- Bussiness Components: chịu trách nhiệm kiểm tra các quy tắc nghiệp vụ, ràng buộc logic và thực hiện các công việc Các thành phần này cũng thực hiện các dịch vụ mà Service Interface cung cấp và Business Workflows sẽ sử dụng nó.
- Bussiness Entities: thường được sử dụng như Data Transfer Objects (DTO ) Bạn có thể sử dụng để truyền dữ liệu giữa các lớp (Presentation và Data Layer) Chúng thường là cấu trúc dữ liệu (DataSets, XML,… ) hay các lớp đối tượng đã được tùy chỉnh.
Hình 3.4 Cấu trúc của Data Layer
Quy trình kết nối cơ sở dữ liệu
- Bước 1: Mở file solution của phần mềm đang xây dựng, click vào Tool chọn Connect Database.
- Bước 2: Mở phần mềm SQL Server Management Studio 19 và click chọn vào cơ sở dữ liệu của phần mềm đang xây dựng.
- Bước 3: Click Connect để lấy Server name, trong trường hợp này Server name có tên là “OTCHUONG”.
- Bước 4: Copy Server name và dán vào tên Server vào mục Server name trên visual studio 2022 Sau đó click chọn vào Trust Server Certificate và select vàoDatabase đã xây dựng Trong trường hợp này, Database là “Quanlycanbo”.
- Bước 5: Tạo một class ketnoi trong folder DAO để kết nối cơ sở dữ liệu và load CSDL vào phần mềm theo câu lệnh sau: public string connectionString= $"Data Source=OTCHUONG;Initial Catalog=Quanlycanbo;Integrated Security=True"; public DataTable DB_load(string sql) { using (SqlConnection conn = new SqlConnection(connectionString)) { if (conn.State == ConnectionState.Closed) conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn); da.Fill(dt); conn.Close(); return dt;
Trong đó, Data Source là tên của Server name kết nối với phần mềm Bên cạnh đó, có 2 loại load dữ liệu bằng truyền parameter và không parameter.
//Load DataSet không có tham số parameter public DataSet DB_loadDataset(string sql) { using (SqlConnection conn = new SqlConnection(connectionString)) { if (conn.State == ConnectionState.Closed) conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn); da.Fill(dt); conn.Close(); return dt;
} } //Load DataSet bằng truyền parameter public DataSet Load_DataSetWithParameter(string sql, string[] name, object[] values, int parameter)
{ using (SqlConnection conn = new SqlConnection(connectionString)) {
SqlCommand cmd = new SqlCommand(sql, conn); cmd.CommandType = CommandType.StoredProcedure; for (int i = 0; i < parameter; i++) { cmd.Parameters.AddWithValue(name[i], values[i]);
} SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dt = new DataSet(); adapter.Fill(dt); conn.Close();
Quy trình đóng gói phần mềm
+ Mở SQL Server Management Studio → Chuột phải vào database của bạn
→ Properties → Cửa sổ Database Properties hiện lên → Chọn Files → Copy đường dẫn Path (Đây chính là đường dẫn đến nơi chứa 2 file mdf và ldf)
+ Sau khi đi tới đường dẫn ta sẽ có thấy file database cần tìm:
- Bước 2: Di chuyển file Database đã lấy vào trong thư mục chứa project.
- Bước 3: Khai báo connectionString trong file App.config.
Lấy chuỗi connectString chúng ta đã khai báo trong App.config để sử dụng trong ketnoi.cs. private string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString; private readonly SqlConnection connection;
Các bước quy trình đóng gói đã hoàn thành.
Xây dựng bảo đảm an toàn thông tin trong phần mềm
3.5.1 Xây dựng mã hoá mật khẩu MD5
MD5 (Message Digest Algorithm 5) là một thuật toán băm (hash function) được thiết kế để tạo ra một giá trị băm (hash value) cố định và duy nhất từ một đầu vào dữ liệu, thường là một chuỗi ký tự Đặc trưng của thuật toán MD5 là kết quả mã băm (hash) có độ dài cố định là 128 bit (16 byte). Đặc điểm quan trọng của thuật toán MD5 bao gồm:
- Không thể đảo ngược: Không thể phục hồi dữ liệu gốc từ giá trị băm (hash value) Mục đích chính của việc sử dụng MD5 là bảo vệ thông tin và mật khẩu mà không cần lưu trữ mật khẩu thực tế.
- Tính duy nhất: Dữ liệu đầu vào khác nhau sẽ tạo ra giá trị băm khác nhau, và cố gắng thay đổi một ít trong dữ liệu đầu vào cũng sẽ tạo ra một giá trị băm hoàn toàn khác biệt.
- Nhanh chóng: Việc tính toán giá trị băm (hash) nhanh chóng, làm cho nó phù hợp cho nhiều ứng dụng khác nhau.
Trong phần mềm quản lý thông tin cán bộ tại trường T07, nhóm học viên đã sử dụng thuật toán MD5 để áp dụng cho chức năng mã hoá mật khẩu đưa vào cơ sở dữ liệu SQL Dưới đây là đoạn code cho chức năng đăng nhập. private string mahoamatkhau(string pass) { byte[] temp = ASCIIEncoding.ASCII.GetBytes(pass); byte[] hasData = new MD5CryptoServiceProvider().ComputeHash(temp); string hasPass = ""; foreach (byte item in hasData) { hasPass = hasPass + item;
} private void btnDangnhap_Click(object sender, EventArgs e) { string pass = mahoamatkhau(txtMK.Text);
DataTable dt = cb.ktrdangnhap(txtTK.Text, pass); if (dt.Rows.Count > 0) {
MessageBox.Show("Đăng nhập thành công","Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
Program.flag = 1; if ((int)(dt.Rows[0][2]) == 1)
} else MessageBox.Show("Tên đăng nhập hoặc mật khẩu không đúng","Thông báo", MessageBoxButtons.OK,MessageBoxIcon.Error);
Sau khi mã hoá mật khẩu, dữ liệu sẽ được so sánh với dữ liệu được lưu trong CSDL Nếu trùng khớp sẽ cho phép đăng nhập, ngược lại in ra thông báo “Tên đăng nhập hoặc mật khẩu không đúng”.
Hình 3.7 Mật khẩu sau khi được mã hoá sẽ được đưa vào CSDL
3.5.2 Chống tấn công SQL Injection
Tấn công SQL Injection là một kỹ thuật tấn công mà kẻ tấn công cố gắng chèn hoặc thực thi các câu lệnh SQL độc hại vào các truy vấn cơ sở dữ liệu Khi tấn công này thành công, kẻ tấn công có thể lợi dụng lỗ hổng này để:
Truy cập không hợp lệ dữ liệu: Kẻ tấn công có thể truy cập, đọc, và thậm chí thay đổi dữ liệu trong CSDL.
Thực thi câu lệnh SQL độc hại: Kẻ tấn công có thể thực thi các câu lệnh
SQL độc hại để gây hại cho hệ thống, như xóa dữ liệu, tạo người dùng giả mạo, hoặc thay đổi cấu trúc của CSDL.
Bypass xác thực đăng nhập: Nếu hệ thống sử dụng SQL để kiểm tra xác thực đăng nhập, kẻ tấn công có thể thay đổi câu lệnh SQL để vượt qua xác thực đăng nhập mà không cần biết mật khẩu.
Trong phần mềm này, nhóm học viên đã xây dựng kỹ thuật truyền parameter để chống tấn công SQL injection Dưới đây là đoạn code của chức năng đăng nhập vào hệ thống.
- Ở FrmLogin: private string mahoamatkhau(string pass) { byte[] temp = ASCIIEncoding.ASCII.GetBytes(pass); byte[] hasData = new MD5CryptoServiceProvider().ComputeHash(temp); string hasPass = ""; foreach (byte item in hasData) { hasPass = hasPass + item;
} private void btnDangnhap_Click(object sender, EventArgs e) { string pass = mahoamatkhau(txtMK.Text);
DataTable dt = dn.ktrdangnhap(txtTK.Text, pass); if (dt.Rows.Count > 0) {
MessageBox.Show("Đăng nhập thành công","Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
Program.flag = 1; if ((int)(dt.Rows[0][2]) == 1) Program.role = true;
Program.matkhau = dt.Rows[0][1].ToString().Trim();
Program.taikhoan = dt.Rows[0][0].ToString().Trim();
} else MessageBox.Show("Tên đăng nhập hoặc mật khẩu không đúng","Thông báo", MessageBoxButtons.OK,MessageBoxIcon.Error);
- Ở Class Dangnhap.cs: public DataTable ktrdangnhap(string tentk, string mk)
{ string sql = "SELECT * FROM Taikhoan WHERE TenTaiKhoan=@TenTaiKhoan AND Matkhau=@Matkhau"; using (SqlCommand cmd = new SqlCommand(sql, kn.connect)) { cmd.Parameters.AddWithValue("@TenTaiKhoan", tentk); cmd.Parameters.AddWithValue("@Matkhau", mk);
DataTable dt = new DataTable(); using (SqlDataAdapter da = new SqlDataAdapter(cmd)) {
* Phần mềm không sử dụng kỹ thuật truyền parameter.
Lúc này hoàn toàn có thể tấn công SQL injection để đánh cắp dữ liệu.
Hình 3.8 Mã hoá mật khẩu giúp ngăn chặn tấn công SQL Injection ở textbox
Có thể thấy, mã hoá mật khẩu giúp cho việc ngăn chặn SQL injection nhưng chỉ ngăn chặn được một phần vì chúng ta chỉ mã hoá mật khẩu nhưng ít khi mã hoá tên đăng nhập, dưới đây là một ví dụ:
Hình 3.9 Tấn công SQL Injection vào tên đăng nhập khi không sử dụng kỹ thuật truyền Parameter
* Phần mềm sau khi đã sử dụng kỹ thuật truyền parameter.
Hình 3.10 Tấn công SQL injection vào tên đăng nhập sau khi sử dụng kỹ thuật truyền Parameter
Qua chương 3, nhóm học viên đã khái quát được tổng quan về mô hình 3 lớp, các công cụ và ngôn ngữ hỗ trợ cho việc xây dựng phần mềm.
Bên cạnh đó cũng nêu được cách kết nối cơ sở dữ liệu SQL vào phần mềm cũng như cách đóng gói để cài đặt sau khi xây dựng xong.
Ngoài ra, xây dựng mã hoá mật khẩu MD5 và khắc phục lỗi tấn công SQL injection một cách hiệu quả.
GIỚI THIỆU PHẦN MỀM QUẢN LÝ THÔNG TIN CÁN BỘ TẠI TRƯỜNG ĐẠI HỌC KỸ THUẬT - HẬU CẦN CAND
Cài đặt phần mềm
- Bước 1: Chạy file setup.exe trong Folder Quanlythongtincanbo.
- Bước 3: Sử dụng phần mềm.
Giao diện và cách sử dụng phần mềm
- Bước 1: Vào hệ thống -> Đăng nhập chương trình.
- Bước 2: Nhập tên đăng nhập vào ô tài khoản.
- Bước 3: Nhập mật khẩu đi kèm với tên truy cập vào ô mật khẩu.
- Bước 4: Kích hoạt đăng nhập Nếu tài khoản đăng nhập tồn tại và mật khẩu đi kèm đúng thì hệ thống sẽ hiện giao diện chính của chương trình.
4.2.2 Form quản lý cán bộ
* Form quản lý cán bộ thuộc biên chế.
Hình 4.2 Giao diện form cán bộ thuộc biên chế
- Chức năng: Thêm tài khoản
Khi người quản trị muốn thêm một cán bộ vào danh sách, cần thêm đầy đủ thông tin vào các trường Nếu số hiệu nhập vào trùng với số hiệu đã có trong danh sách thì thông báo “Cán bộ đã tồn tại”, nếu nhập không đủ các trường thì sẽ hiển thị thông báo “Cần nhập đầy đủ thông tin”, ngược lại sẽ thông báo “Thêm thành công”.
Khi người quản trị muốn sửa tài khoản thì click vào cán bộ cần sửa, sau đó điều chỉnh những thông tin muốn sửa và click vào “Sửa”-> Thông tin cán bộ sẽ được cập nhật.
- Chức năng: Xóa tài khoản
Khi người quản trị muốn xoá cán bộ thì click chọn vào cán bộ muốn xoá, chọn lí do và click vào xoá Lúc này thông tin cán bộ đó sẽ được chuyển qua form cán bộ không thuộc biên chế.
* Form quản lý cán bộ không thuộc biên chế.
Hình 4.3 Giao diện form cán bộ không thuộc biên chế
4.2.3 Form chi tiết cán bộ
Hình 4.4 Giao diện form chi tiết cán bộ
- Chức năng: Lưu Ở form cán bộ thuộc biên chế, khi người quản trị muốn xem hoặc muốn cập nhật lại cán bộ một cách chi tiết sẽ click vào “Chi tiết” Lúc này form chi tiết sẽ được load, người quản trị sẽ tiến hành cập nhật hoặc thêm thông tin của cán bộ, sau đó click vào “Lưu”.
4.1.4 Form quản lý tài khoản
* Form quản lý danh sách và tạo tài khoản.
Hình 4.5 Giao diện form quản lý danh sách và tạo tài khoản
- Chức năng: Tạo tài khoản.
Người quản trị có quyền tạo tài khoản mới Sau khi nhập tên tài khoản và mật khẩu, sẽ click vào tuỳ chọn “Admin” (nếu là người quản trị) hoặc không click vào (cán bộ - người dùng) Sau đó, click vào “Tạo tài khoản” Lúc này tài khoản vừa tạo sẽ hiển thị lên danh sách tài khoản.
Hình 4.6 Giao diện form đổi mật khẩu
- Chức năng: Đổi mật khẩu.
Chức năng này tất cả người dùng đều có thể thực hiện (vì một số chức năng chỉ người quản trị mới được sử dụng). Đầu tiên nhập mật khẩu cũ, sau đó nhập mật khẩu mới và nhập lại một lần nữa để xác nhận Cuối cùng, click vào “Đổi mật khẩu”.
4.1.5 Form quản lý đơn vị
- Chức năng: thêm, sửa, xoá Tương tự như chức năng trong form quản lý cán bộ đã nêu.
* Form thống kê tất cả cán bộ chiến sĩ.
Hình 4.8 Giao diện form thống kê tất cả cán bộ chiến sĩ
* Form thống kê theo cấp bậc hàm.
* Form thống kê theo đơn vị.
Hình 4.10 Giao diện form thống kê theo đơn vị
* Form thống kê theo trình độ.
* Form thống kê theo lý luận chính trị.
Hình 4.12 Giao diện form thống kê theo lý luận chính trị
* Form thống kê theo số hiệu.
Có 5 loại thống kê (Thống kê theo tất cả CBCS, thống kê theo đơn vị, thống kê theo trình độ, thống kê theo lý luận chính trị, thống kê theo số hiệu) Click vào chọn kiểu thống kê muốn sử dụng và click vào “Thống kê”, form thống kê sẽ hiển thị và có thể in ra các file PDF, Excel, Word.
4.3 Đánh giá bảo mật trên phần mềm
Nếu không sử dụng kỹ thuật truyền parameter thì phần mềm hoàn toàn có thể bị tấn công mặc dù mật khẩu đã được mã hoá Ở đây, phần mềm quản lý thông tin cán bộ tại Trường T07 đã xây dựng tất cả các hàm load cơ sở dữ liệu bằng kỹ thuật truyền parameter (hàm đăng nhập, hàm tìm kiếm, hàm sửa,…), góp phần chống tấn công SQL injection một cách hiệu quả.
Hình 4.14 Tấn công SQL Injection vào tên đăng nhập
Hình 4.15 Tấn công SQL Injection vào mật khẩu
Phần mềm không những đảm bảo chống tấn công SQL injection mà còn đảm bảo mã hoá mật khẩu trước khi đưa vào cơ sở dữ liệu.
Hình 4.17 Mật khẩu sau khi được mã hoá
Dựa vào những nghiên cứu, phân tích đã thực hiện ở Chương 1, Chương 2 và Chương 3, trong Chương 4 nhóm đã hướng dẫn cài đặt, giới thiệu giao diện và cách sử dụng phần mềm quản lý thông tin cán bộ tại trường T07 Bên cạnh đó, mô tả được mô hình hoạt động của hệ thống, đưa ra những đánh giá về phương pháp thiết kế bảo đảm an toàn thông tin trong phần mềm này.
Phần mềm có các chức năng cơ bản, dễ sử dụng, thân thiện với người dùng.
Chính vì lẽ đó, phần mềm này càng khẳng định có thể đáp ứng các nhu cầu trong tình hình quản lý thông tin cán bộ trong nhà trường trong giai đoạn hiện nay
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết quả đạt được:
Sau thời gian nghiên cứu, thực hiện đề tài “Xây dựng phần mềm quản lý thông tin cán bộ tại trường Đại học Kỹ thuật - Hậu cần CAND” Nhóm đã đạt được một số kết quả như sau:
1 Tổng quan về phần mềm quản lý thông tin cán bộ tại trường T07 đã được trình bày một cách chi tiết và toàn diện.
2 Phân tích được những ưu điểm và sự cần thiết của việc xây dựng một phần mềm quản lý thông tin cán bộ cho trường.
3 Phân tích, thiết kế và xây dựng phần mềm đã được thực hiện kỹ lưỡng, bao gồm phát biểu bài toán quản lý thông tin cán bộ, xác định các tác nhân, use case, xây dựng mô hình use case tổng quát, use case chi tiết, cũng như các biểu đồ trình tự, biểu đồ cộng tác, biểu đồ trạng thái, biểu đồ hoạt động, biểu đồ lớp, lược đồ CSDL.
4 Mô tả hoạt động của phần mềm, thiết kế giao diện đã đáp ứng các chức năng cơ bản Bên cạnh đó, giới thiệu tổng quan về mô hình 3 lớp Đồng thời, đề cập đến các phương pháp thiết kế bảo đảm ATTT như sử dụng mã hoá mật khẩu MD5, chống tấn công SQL Injection.
1 Do hạn chế về kiến thức chuyên môn, bài báo cáo có thể xuất hiện một số thiếu sót và hạn chế.
2 Thời gian đầu tư vào đề tài chưa đủ nhiều do phải cân đối giữa nghiên cứu và các hoạt động học tập, rèn luyện tại trường.
1 Đề tài đưa ra là một vấn đề có tính thực tế và quan trọng, đặc biệt là trong bối cảnh quản lý thông tin cán bộ tại trường T07 ngày trở nên thiết yếu.
2 Hệ thống còn hạn chế, nhưng có tiềm năng lớn để phát triển và nâng cấp.
Trần Nguyễn Duy Quang Trưởng nhóm, phân công nhiệm vụ, phụ trách thiết kế và xây dựng phần mềm, chương 4 của bài báo cáo.
Nguyễn Quang Sáng Phụ trách chương 3 của bài báo cáo, thiết kế cơ sở dữ liệu SQL, làm powerpoint.
Ngô Huy Toàn Phụ trách chương 1, chương 2 của bài báo cáo, làm bìa báo cáo.