Giới thiệu dự án

Trong bối cảnh công nghiệp hóa và chuyển đổi số tại các doanh nghiệp sản xuất, công tác quản trị nguồn nhân lực đóng vai trò sống còn trong việc tối ưu hóa chi phí vận hành và duy trì năng suất lao động. Theo thống kê từ các tổ chức quản trị doanh nghiệp, việc quản lý nhân sự theo phương thức thủ công (hồ sơ giấy, sổ sách, file bảng tính rời rạc) gây ra tỷ lệ sai sót dữ liệu lên đến 15 - 20%, làm thất thoát hồ sơ và tiêu tốn hơn 40% thời gian xử lý thủ tục hành chính - kế toán mỗi kỳ tính lương.

Vấn đề cốt lõi đặt ra là sự phân tán trong quy trình quản lý thông tin nhân sự: từ khâu tiếp nhận hồ sơ ứng viên, ký kết hợp đồng thử việc/lao động, theo dõi máy chấm công điện tử, đến việc tính toán các khoản trích nộp Bảo hiểm Xã hội (BHXH), Bảo hiểm Y tế (BHYT), thuế Thu nhập Cá nhân (TNCN) và chế độ nâng bậc lương theo Luật Lao động Việt Nam.

Đồ án tốt nghiệp chuyên ngành Công nghệ Thông tin với đề tài "Xây dựng và kiểm thử hệ thống quản lý nhân sự cho công ty" (Viện Đại học Mở Hà Nội, 2018) được thực hiện nhằm giải quyết triệt để bài toán tự động hóa quy trình quản trị nhân sự cho các đơn vị sản xuất.

Mục tiêu dự án

  1. Thiết kế kiến trúc hệ thống chuẩn hóa: Xây dựng mô hình 3 lớp (3-Tier Architecture) chạy trên nền tảng ứng dụng Desktop (Windows Form), vận hành qua mạng nội bộ (LAN) với tính ổn định cao.
  2. Số hóa toàn diện nghiệp vụ nhân sự: Hiện thực hóa 5 nhóm module nghiệp vụ gồm: Quản lý hồ sơ nhân viên (nhân thân, bằng cấp, quá trình công tác), Quản lý tuyển dụng, Quản lý hợp đồng lao động, Quản lý chấm công - tiền lương, và Quản lý khen thưởng - kỷ luật.
  3. Chuẩn hóa công thức tính lương và phúc lợi: Tự động hóa tính toán lương làm thêm giờ (Overtime - OT) với hệ số từ 150% đến 390%, trích đóng BHXH (8%), BHYT (1.5%), giảm trừ gia cảnh thuế TNCN, và quy tắc nâng lương theo Nghị định 141/2017/NĐ-CP và Thông tư 08/2013/TT-BNV.
  4. Đảm bảo chất lượng phần mềm thông qua kiểm thử toàn diện: Áp dụng phương pháp kiểm thử hộp đen (Black-box Testing), phân vùng tương đương (Equivalence Partitioning) và phân tích giá trị biên (Boundary Value Analysis) nhằm phát hiện và triệt tiêu 100% các lỗi logic và xung đột dữ liệu trước khi nghiệm thu.

Phạm vi và giới hạn

  • Phạm vi: Ứng dụng triển khai cho các doanh nghiệp sản xuất quy mô vừa và nhỏ (SMEs), kết nối qua mạng nội bộ LAN, hỗ trợ cơ chế phân quyền RBAC (Role-Based Access Control) cho Ban Giám đốc, Phòng Hành chính - Nhân sự, Phòng Kế toán và Cán bộ nhân viên.
  • Giới hạn: Hệ thống xây dựng dưới dạng Desktop Client-Server, chưa tích hợp cổng thanh toán trực tuyến qua ngân hàng (Internet Banking Gateway) và chưa phát triển ứng dụng di động (Mobile App).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng và so sánh giải pháp

Khảo sát các phần mềm quản lý nhân sự cùng giai đoạn cho thấy rõ các ưu - nhược điểm kỹ thuật:

Tiêu chí so sánh Phần mềm QLNS Anh Khoa Phần mềm QLNS Trường Hà Hệ thống QLNS đề xuất
Giao diện & UI Tool DotNetBar Suite, nhẹ Cơ bản, thẩm mỹ chưa cao DotNetBar & DevExpress WinForms
Tìm kiếm đa điều kiện Còn trên ý tưởng, chưa tối ưu Hỗ trợ tìm kiếm theo tiêu chí Tìm kiếm động đa tiêu chuẩn (Dynamic Query)
Bảo mật người dùng Đăng nhập cơ bản Chưa hỗ trợ đổi mật khẩu/user Phân quyền RBAC, mã hóa mật khẩu, đổi thông tin
Tính toán tiền lương Tính lương hành chính cơ bản Hỗ trợ tính lương cơ bản Đầy đủ ca kíp sản xuất, OT 150% - 390%, BHXH, Thuế TNCN
Kiểm thử hệ thống Kiểm thử sơ bộ Kiểm thử đơn lẻ Quy trình kiểm thử bài bản (Test Plan, Test Cases, Bug Log)

Phân loại yêu cầu theo mô hình MoSCoW

  • Must Have: Đăng nhập/xác thực tài khoản; Thêm/Sửa/Xóa/Tìm kiếm hồ sơ nhân viên; Quản lý hợp đồng (thử việc 6-60 ngày, hợp đồng xác định/không xác định thời hạn); Chấm công quét thẻ; Tính lương theo ca và hệ số OT; Báo cáo thống kê nhân sự.
  • Should Have: Phân quyền chi tiết theo vai trò (Admin, Kế toán, Nhân sự, Giám đốc); Quản lý thân nhân, quá trình đào tạo; Tự động cảnh báo nâng lương, gia hạn hợp đồng.
  • Could Have: Xuất báo cáo bảng lương và hồ sơ ra định dạng Excel/PDF; Đổi mật khẩu cá nhân trực tiếp trên form giao diện.
  • Won't Have (Giai đoạn này): Đồng bộ dữ liệu đám mây (Cloud Sync); Tích hợp máy chấm công nhận diện khuôn mặt AI qua Web API.

Thiết kế kiến trúc hệ thống

Hệ thống sử dụng mô hình 3-Tier Architecture nhằm tách biệt tuyệt đối giữa tầng giao diện, tầng xử lý logic và tầng truy xuất cơ sở dữ liệu:

  • Công nghệ sử dụng: C# (.NET Framework 4.5+), Microsoft Visual Studio, DevExpress / DotNetBar Components.
  • Cơ sở dữ liệu: Microsoft SQL Server 2014/2016.
  • Hệ điều hành tương thích: Microsoft Windows 7 / 8.1 / 10 / 11 Server.

Thiết kế cơ sở dữ liệu (Database Schema)

-- Bảng Quản lý Nhân viên
CREATE TABLE NhanVien (
    MaNV VARCHAR(10) PRIMARY KEY,
    HoTen NVARCHAR(100) NOT NULL,
    NgaySinh DATE NOT NULL,
    GioiTinh NVARCHAR(10) CHECK (GioiTinh IN (N'Nam', N'Nữ')),
    CMND_CCCD VARCHAR(20) UNIQUE NOT NULL,
    NgayCap DATE,
    NoiCap NVARCHAR(100),
    DiaChi NVARCHAR(255),
    SoDienThoai VARCHAR(15),
    MaPhongBan VARCHAR(10) FOREIGN KEY REFERENCES PhongBan(MaPB),
    MaChucVu VARCHAR(10) FOREIGN KEY REFERENCES ChucVu(MaCV),
    TrangThaiLamViec NVARCHAR(50) DEFAULT N'Đang làm việc'
);

-- Bảng Hợp đồng Lao động tuân thủ Luật Lao động
CREATE TABLE HopDongLaoDong (
    MaHopDong VARCHAR(20) PRIMARY KEY,
    MaNV VARCHAR(10) FOREIGN KEY REFERENCES NhanVien(MaNV),
    LoaiHopDong NVARCHAR(50) NOT NULL, -- Thử việc, 12-36 tháng, Vô thời hạn
    TuNgay DATE NOT NULL,
    DenNgay DATE,
    LuongCoBan DECIMAL(18,2) NOT NULL,
    HeSoLuong FLOAT DEFAULT 1.0,
    PhuCap DECIMAL(18,2) DEFAULT 0,
    NgayKy DATE NOT NULL,
    NguoiKy NVARCHAR(100)
);

-- Bảng Bảng Chấm công và Tính Lương
CREATE TABLE BangLuongThang (
    MaLuong VARCHAR(20) PRIMARY KEY,
    MaNV VARCHAR(10) FOREIGN KEY REFERENCES NhanVien(MaNV),
    ThangNam VARCHAR(7) NOT NULL, -- Định dạng: MM/YYYY
    SoNgayCongChuan INT DEFAULT 26,
    SoNgayDiLam FLOAT NOT NULL,
    SoGioTangCaNgayThuong FLOAT DEFAULT 0,
    SoGioTangCaChuNhat FLOAT DEFAULT 0,
    SoGioTangCaLeTet FLOAT DEFAULT 0,
    TienBHXH DECIMAL(18,2), -- 8% lương cơ bản
    TienBHYT DECIMAL(18,2), -- 1.5% lương cơ bản
    ThueTNCN DECIMAL(18,2) DEFAULT 0,
    LuongThucLinh DECIMAL(18,2) NOT NULL
);

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình Thác nước kết hợp kiểm thử chữ V (V-Model) với kế hoạch 15 tuần triển khai rõ ràng:

  • Tuần 1 - 3: Khảo sát nghiệp vụ, phân tích yêu cầu phần mềm và mô hình hóa dữ liệu (DFD, ERD).
  • Tuần 4 - 7: Thiết kế cơ sở dữ liệu, kiến trúc 3 lớp và lập kế hoạch kiểm thử (Test Plan).
  • Tuần 8: Thiết kế UI người dùng với DotNetBar và kiểm thử giao diện.
  • Tuần 9 - 12: Lập trình và kiểm thử đồng thời từng module (Tài khoản, Hồ sơ, Tuyển dụng, Hợp đồng, Chấm công, Tính lương, Báo cáo).
  • Tuần 13 - 15: Kiểm thử tích hợp hệ thống, vá lỗi phát sinh và đóng gói tài liệu nghiệm thu.

Implementation và kết quả

Thuật toán tính lương và xử lý phụ cấp tăng ca

Thuật toán tính lương thực lĩnh được chuẩn hóa theo quy định pháp luật lao động hiện hành (bao gồm phụ cấp làm đêm, tăng ca và trích đóng bảo hiểm):

$$\text{Lương Ngày Công} = \frac{\text{Lương Cơ Bản}}{\text{Ngày Công Chuẩn}} \times \text{Số Ngày Đi Làm}$$

$$\text{Tiền Tăng Ca} = \sum (\text{Giờ OT} \times \text{Đơn Giá Giờ} \times \text{Hệ Số Pháp Luật})$$

Trong đó hệ số quy định: Ngày thường = $150%$; Ca đêm ngày thường / Ngày Chủ nhật = $200%$; Đêm ngày thường sau 22h = $210%$; Đêm Chủ nhật = $270%$; Ngày lễ/Tết = $300%$; Đêm ngày lễ/Tết = $390%$.

public class PayrollCalculator
{
    private const double RATE_NORMAL_OT = 1.5;      // 150% ngày thường
    private const double RATE_NIGHT_OT = 2.1;       // 210% sau 22h ngày thường
    private const double RATE_SUNDAY_OT = 2.0;      // 200% ngày chủ nhật
    private const double RATE_SUNDAY_NIGHT_OT = 2.7;// 270% đêm chủ nhật
    private const double RATE_HOLIDAY_OT = 3.0;     // 300% ngày lễ tết
    private const double RATE_HOLIDAY_NIGHT_OT = 3.9;// 390% đêm lễ tết
    
    private const decimal BHXH_PERCENT = 0.08m;     // 8% Bảo hiểm xã hội
    private const decimal BHYT_PERCENT = 0.015m;    // 1.5% Bảo hiểm y tế

    public decimal CalculateNetSalary(
        decimal baseSalary, 
        int standardWorkDays, 
        double actualWorkDays,
        double normalOTHours, 
        double sundayOTHours, 
        double holidayOTHours, 
        decimal allowances, 
        decimal deductions)
    {
        if (standardWorkDays <= 0) throw new ArgumentException("Ngày công chuẩn phải > 0");

        // 1. Lương theo ngày công thực tế
        decimal dailyRate = baseSalary / standardWorkDays;
        decimal hourlyRate = dailyRate / 8; // 8 giờ làm việc tiêu chuẩn
        decimal workSalary = dailyRate * (decimal)actualWorkDays;

        // 2. Tính toán tiền tăng ca (Overtime)
        decimal otSalary = (hourlyRate * (decimal)normalOTHours * (decimal)RATE_NORMAL_OT)
                         + (hourlyRate * (decimal)sundayOTHours * (decimal)RATE_SUNDAY_OT)
                         + (hourlyRate * (decimal)holidayOTHours * (decimal)RATE_HOLIDAY_OT);

        // 3. Các khoản trích nộp bảo hiểm theo quy định
        decimal bhxhDeduction = baseSalary * BHXH_PERCENT;
        decimal bhytDeduction = baseSalary * BHYT_PERCENT;
        decimal totalInsurance = bhxhDeduction + bhytDeduction;

        // 4. Tổng thu nhập và Lương thực lĩnh
        decimal grossIncome = workSalary + otSalary + allowances;
        decimal netSalary = grossIncome - totalInsurance - deductions;

        return Math.Round(netSalary, 0); // Làm tròn đến đơn vị VNĐ
    }
}

Kết quả kiểm thử và độ tin cậy phần mềm

Nhóm tác giả đã tiến hành kiểm thử độc lập với chiến lược phân chia vai trò rõ ràng giữa Lập trình viên (Dev) và Kiểm thử viên (Tester):

                                  KIỂM THỬ HỆ THỐNG
[Kiểm thử chức năng]             [Kiểm thử giao diện]                  [Kiểm thử an toàn]
- Phân vùng tương đương          - Font Unicode TCVN                   - Phân quyền RBAC
- Giá trị biên (Boundary)        - Độ phân giải đa màn hình            - Kiểm soát phiên đăng nhập
- 100% Pass Rate cốt lõi         - Thời gian đáp ứng < 1.5s            - Tránh lỗi SQL Injection
  • Độ bao phủ kiểm thử: Xây dựng hơn 120 Test Cases chi tiết trải rộng trên các module Tài khoản, Hồ sơ, Chấm công, Tính lương và Báo cáo.
  • Tỷ lệ vượt qua (Pass Rate): 98.3% trên tổng số kịch bản thử nghiệm; 100% lỗi nghiêm trọng (Critical Bugs) liên quan đến tính sai lệch số tiền bảo hiểm và trùng lặp khóa chính được phát hiện và khắc phục dứt điểm trong tuần 14 - 15.
  • Hiệu năng hệ thống (Performance Benchmark):
    • Thời gian truy xuất và lọc dữ liệu danh sách 1.000 nhân viên: $< 1.2\text{ giây}$.
    • Thời gian kết xuất bảng lương toàn nhà máy (500 công nhân): $< 2.5\text{ giây}$.
    • Mức chiếm dụng bộ nhớ RAM máy trạm: $\approx 45 - 65\text{ MB}$.

Đổi mới và đóng góp

  1. Khả năng tự động hóa tuân thủ pháp luật lao động (Legal Compliance Engine):

    • Hệ thống tự động tích hợp các điều khoản của Bộ luật Lao động: Ràng buộc thử việc tối đa 60 ngày đối với bậc cao đẳng/đại học, 30 ngày đối với trung cấp/công nhân kỹ thuật, và 6 ngày đối với lao động phổ thông; quy định mức lương thử việc tối thiểu đạt 85% lương chính thức.
    • Cơ chế gia hạn hợp đồng có thời hạn tối đa 2 lần trước khi bắt buộc chuyển sang hợp đồng không xác định thời hạn.
    • Tự động kéo dài thời hạn nâng lương định kỳ khi nhân viên có quyết định kỷ luật (khiển trách hoãn 3 tháng, cảnh cáo hoãn 6 tháng, cách chức hoãn 12 tháng theo Thông tư 08/2013/TT-BNV).
  2. Cải tiến hiệu suất vận hành doanh nghiệp:

    • Tăng 85% tốc độ tìm kiếm và tổng hợp hồ sơ: Thay vì mất từ 15 - 30 phút tìm kiếm hồ sơ giấy trong kho lưu trữ, phần mềm trả về kết quả truy vấn đa tiêu chí chỉ trong $1 - 2\text{ giây}$.
    • Giảm 95% sai sót tính lương và bảo hiểm: Triệt tiêu hoàn toàn hiện tượng nhầm lẫn ngày công, sai lệch hệ số phụ cấp tăng ca ngày lễ/chủ nhật so với tính thủ công bằng Excel.
    • Tối ưu hóa chi phí nhân sự quản lý: Giảm tải 60% khối lượng công việc hành chính giấy tờ cho bộ phận nhân sự và kế toán.

Ứng dụng thực tế và triển khai

Kịch bản triển khai thực tế (Real-World Deployment)

Hệ thống được thiết kế đặc thù cho các doanh nghiệp sản xuất cơ khí, may mặc, chế biến thực phẩm có quy mô từ 50 đến 1.000 lao động.

       [Máy Chủ Database SQL Server 2014] (IP: 192.168.1.10)
[Máy Trạm Ban Giám Đốc]  [Máy Trạm Phòng HR]    [Máy Trạm Phòng Kế Toán]
(Xem báo cáo, duyệt)     (Hồ sơ, Chấm công)     (Tính lương, Trích nộp BH)

Yêu cầu cấu hình hệ thống

  • Cấu hình máy chủ (Server):
    • CPU: Intel Core i3 / Xeon 2.4 GHz trở lên.
    • RAM: Tối thiểu 4 GB (khuyến nghị 8 GB).
    • Ổ cứng: 50 GB dung lượng trống (SSD).
    • Hệ điều hành: Windows Server 2012 / Windows 10 Pro 64-bit; Cài đặt Microsoft SQL Server 2014 trở lên.
  • Cấu hình máy trạm (Client):
    • CPU: Intel Core 2 Duo / Core i3 trở lên.
    • RAM: Tối thiểu 2 GB.
    • Môi trường thực thi: Microsoft .NET Framework 4.5.
    • Mạng: Kết nối mạng cục bộ (LAN) tốc độ 100/1000 Mbps.

Hướng dẫn cài đặt nhanh

  1. Thiết lập CSDL: Mở SQL Server Management Studio (SSMS), chạy file script QLNS_Database_Schema.sql để khởi tạo cấu trúc bảng, khóa ngoại và dữ liệu danh mục mẫu.
  2. Cấu hình kết nối: Mở file cấu hình App.config trên ứng dụng máy trạm và cập nhật chuỗi kết nối:
    <connectionStrings>
        <add name="HRMS_DbConnection" 
             connectionString="Data Source=192.168.1.10;Initial Catalog=QLNS_DB;User ID=sa;Password=YourSecurePassword;" 
             providerName="System.Data.SqlClient" />
    </connectionStrings>
    
  3. Thực thi ứng dụng: Chạy file HRMS_Management.exe trên máy trạm và đăng nhập bằng tài khoản quản trị mặc định để phân quyền sử dụng.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Kiến trúc phân tán chưa hoàn thiện: Ứng dụng triển khai trên mạng LAN nội bộ, việc truy cập từ xa qua Internet đòi hỏi phải cấu hình VPN hoặc NAT port phức tạp.
  • Phụ thuộc nền tảng Windows: Giao diện WinForms chưa hỗ trợ hoạt động đa nền tảng trên macOS hay Linux.
  • Thu thập dữ liệu chấm công: Chưa tích hợp trực tiếp SDK thời gian thực từ các dòng máy chấm công vân tay hiện đại (như ZKTeco, Ronald Jack) mà cần xuất qua file trung gian hoặc nhập liệu danh sách.

Lộ trình nâng cấp

  1. Chuyển đổi sang kiến trúc Web & Cloud SaaS: Tái cấu trúc tầng backend sử dụng ASP.NET Core Web API và frontend bằng React/Angular để hỗ trợ truy cập trên mọi thiết bị và trình duyệt.
  2. Tích hợp Mobile App cho Nhân viên: Cung cấp ứng dụng di động (Flutter / React Native) giúp nhân viên tự theo dõi bảng công, phiếu lương điện tử và gửi đơn xin nghỉ phép/gia hạn hợp đồng trực tuyến.
  3. Ứng dụng Trí tuệ nhân tạo (AI): Áp dụng các mô hình học máy trong phân tích tỷ lệ biến động nhân sự (Employee Turnover Rate) và tối ưu hóa kế hoạch tuyển dụng định kỳ.

Đối tượng hưởng lợi

  • Sinh viên ngành CNTT / Kỹ thuật phần mềm: Tài liệu tham khảo toàn diện về cách tổ chức đồ án tốt nghiệp theo quy trình chuẩn: từ khảo sát nghiệp vụ thực tế, lập mô hình DFD/ERD đến thiết kế kiến trúc 3 lớp trong C# .NET và viết kịch bản kiểm thử hộp đen.
  • Lập trình viên (Developers): Cung cấp mẫu thiết kế (Design Pattern) 3-Tier chuẩn mực, bộ code xử lý logic chấm công - tiền lương phức tạp cùng mã nguồn thao tác SQL Server an toàn bằng ADO.NET.
  • Doanh nghiệp vừa và nhỏ: Giải pháp phần mềm quản trị nội bộ chi phí thấp, tối ưu hóa quy trình hành chính nhân sự và tuân thủ chặt chẽ pháp luật lao động Việt Nam.
  • Giảng viên và Nhà nghiên cứu: Mô hình tham chiếu điển hình cho việc kết hợp chặt chẽ giữa hai chuyên ngành Phát triển phần mềm (Development) và Đảm bảo chất lượng phần mềm (Quality Assurance).

Câu hỏi thường gặp

1. Hệ thống có yêu cầu phần cứng chuyên dụng để cài đặt không?

Không. Hệ thống hoạt động tốt trên các dòng máy tính văn phòng thông thường chạy hệ điều hành Windows 7 trở lên với cấu hình tối thiểu 2GB RAM và .NET Framework 4.5.

2. Dữ liệu bảng lương và hồ sơ nhân sự có bị giới hạn số lượng lưu trữ không?

Hệ thống sử dụng Microsoft SQL Server làm hệ quản trị cơ sở dữ liệu, cho phép quản lý hàng trăm nghìn bản ghi nhân sự và bảng công lịch sử nhiều năm mà không bị suy giảm hiệu năng truy vấn.

3. Phần mềm xử lý các trường hợp tăng ca đặc biệt (ngày lễ, làm đêm) như thế nào?

Module tính lương tích hợp sẵn công thức tính tỷ lệ phần trăm theo Bộ luật Lao động: từ $150%$ (ngày thường), $200%$ (chủ nhật), $210%$ (đêm thường) đến $390%$ (đêm lễ/tết), tự động tính toán chính xác dựa trên dữ liệu chấm công đầu vào.

4. Chi phí bảo trì và bảo mật hệ thống được đảm bảo ra sao?

Do chạy trong mạng cục bộ LAN và phân quyền RBAC đa cấp, hệ thống ngăn chặn triệt để các nguy cơ tấn công mạng từ bên ngoài. Chi phí bảo trì gần như bằng không sau khi cấu hình máy chủ cơ sở dữ liệu hoàn tất.

5. Có thể nâng cấp hệ thống để kết nối nhiều chi nhánh nhà máy khác nhau không?

Hoàn toàn có thể. Doanh nghiệp có thể thiết lập mạng riêng ảo (Site-to-Site VPN) kết nối các chi nhánh về máy chủ trung tâm hoặc nâng cấp tầng Data Access Layer kết nối qua Web Service / Cloud API trong các giai đoạn phát triển tiếp theo.


Kết luận

Đồ án tốt nghiệp "Xây dựng và kiểm thử hệ thống quản lý nhân sự cho công ty" là một công trình nghiên cứu ứng dụng có giá trị thực tiễn cao, kết hợp nhuần nhuyễn giữa kỹ thuật phát triển ứng dụng 3 lớp trên nền tảng .NET và quy trình đảm bảo chất lượng phần mềm nghiêm ngặt. Hệ thống không chỉ giải quyết trọn vẹn bài toán số hóa quản trị nhân sự cho các đơn vị sản xuất mà còn là tài liệu tham khảo kỹ thuật chuẩn mực cho sinh viên và kỹ sư công nghệ thông tin trong việc phân tích, thiết kế và kiểm thử hệ thống phần mềm doanh nghiệp.