Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin phát triển và được ứng dụng sâu rộng vào công tác quản lý kinh tế - xã hội, các hệ thống tin học ngày càng mở rộng về quy mô và gia tăng độ phức tạp. Việc phát triển các hệ thống phần mềm đối mặt với nhiều thách thức liên quan đến phạm vi ứng dụng rộng lớn và sự thay đổi liên tục của các quy tắc nghiệp vụ. Phương pháp tiếp cận hướng đối tượng ra đời nhằm khắc phục các nhược điểm của phương pháp tiếp cận hướng chức năng truyền thống, hỗ trợ việc mô hình hóa các bài toán phức tạp, nâng cao khả năng tái sử dụng mô-đun, bảo trì và đảm bảo tính thích ứng của phần mềm.

Tại đơn vị hành chính cơ sở, cụ thể là Ủy ban Nhân dân (UBND) xã Tam Thăng, công tác quản lý nhân sự và chi trả tiền lương cho đội ngũ cán bộ, công chức giữ vai trò then chốt nhưng đòi hỏi sự chính xác và nhất quán cao. Kế toán của đơn vị cần theo dõi chi tiết danh sách nhân sự, chức vụ, phòng ban, quá trình công tác, các chế độ làm việc (biên chế, hợp đồng, thử việc), các khoản phụ cấp và tiền thưởng để thực hiện tính lương hàng tháng. Xuất phát từ nhu cầu thực tiễn đó, khóa luận tập trung nghiên cứu và xây dựng giải pháp phần mềm hỗ trợ công tác quản lý tiền lương tại địa bàn này.

Mục tiêu nghiên cứu:

  1. Tìm hiểu về phương pháp lập trình hướng đối tượng.
  2. Xây dựng được một phần mềm quản lý lương với đầy đủ các chức năng.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Nghiên cứu, tìm hiểu phương pháp lập trình hướng đối tượng kết hợp ngôn ngữ mô hình hóa thống nhất (UML).
  • Phạm vi nghiên cứu: Ứng dụng UML trong quá trình phân tích và thiết kế hệ thống; sử dụng ngôn ngữ lập trình C# để xây dựng chương trình demo. Không gian ứng dụng thực tế của mô hình nghiệp vụ là UBND xã Tam Thăng.

Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng nội dung dựa trên nền tảng lý thuyết phát triển phần mềm hướng đối tượng (Object-Oriented Development), đối chiếu trực tiếp với phương pháp hướng chức năng truyền thống:

  • Tiếp cận hướng chức năng: Xoay quanh cấu trúc dữ liệu và chức năng xử lý; tập trung vào việc lưu trữ thông tin, tạo biểu mẫu nhập liệu và in báo cáo. Điểm hạn chế là khó thích ứng khi quy tắc nghiệp vụ hoặc hành vi hệ thống thay đổi.
  • Tiếp cận hướng đối tượng: Kết hợp cả hai yếu tố thông tin (dữ liệu) và hành vi (ứng xử) trong các đối tượng độc lập tương đối. Hệ thống được xây dựng dựa trên 4 đặc trưng cốt lõi: tính trừu tượng hóa cao, tính bao gói thông tin (đảm bảo an toàn, tránh ảnh hưởng lan truyền khi sửa đổi), tính mô-đun hóa và tính kế thừa (cho phép tái sử dụng các thành phần phần mềm).
  • Chu trình phát triển phần mềm hướng đối tượng: Bao gồm ba giai đoạn kế tiếp:
    1. Phân tích hướng đối tượng (Object Oriented Analysis – OOA): Xây dựng mô hình bài toán từ các đối tượng khái niệm trong thế giới thực.
    2. Thiết kế hướng đối tượng (Object Oriented Design – OOD): Tổ chức hệ thống thành các tập lớp đối tượng cộng tác, xác định quan hệ kế thừa và cơ chế truyền thông báo.
    3. Lập trình hướng đối tượng (Object Oriented Programming – OOP): Chuyển đổi mô hình thiết kế thành mã nguồn thực thi bằng ngôn ngữ lập trình hỗ trợ hướng đối tượng.

Về phương pháp luận phát triển hệ thống, tác giả khảo cứu ba mô hình tiến trình: mô hình thác nước (chu trình tuyến tính chia theo các pha tuần tự), mô hình thăm dò (phát triển lặp dựa trên phân tích yếu tố rủi ro và thay đổi yêu cầu), và mô hình tạo nguyên mẫu (xây dựng bản mẫu ban đầu để kiểm nghiệm yêu cầu với người dùng).

Trong mô hình hóa hệ thống bằng UML, đề tài tiếp cận thông qua 5 khung nhìn (views):

  • Khung nhìn ca sử dụng (Use case view): Thể hiện khía cạnh chức năng từ góc nhìn tác nhân bên ngoài.
  • Khung nhìn logic (Logical view): Thể hiện cấu trúc tĩnh và hành vi động bên trong hệ thống.
  • Khung nhìn thành phần (Component view): Thể hiện cấu trúc các mô-đun mã nguồn và sự phụ thuộc giữa chúng.
  • Khung nhìn song song (Concurrency view): Định hình việc phân chia tiến trình và đồng bộ hóa tài nguyên.
  • Khung nhìn triển khai (Deployment view): Ánh xạ các thành phần phần mềm lên kiến trúc phần cứng vật lý.

Công cụ và nguồn tài liệu nghiên cứu:

  • Công cụ phân tích và thiết kế: Rational Rose (hỗ trợ lập biểu đồ UML, mô hình hóa kiến trúc và sinh khung mã).
  • Môi trường phát triển: Microsoft Visual Studio 2010, ngôn ngữ lập trình C#.
  • Nguồn tài liệu tham khảo chính: Giáo trình Phân tích thiết kế hướng đối tượng bằng UML của Đoàn Văn Ban (2004) và tài liệu Phân tích thiết kế hướng đối tượng bằng UML (Thực hành với Rational Rose) của Đặng Văn Đức (2002).

Thiết kế và triển khai

Hệ thống quản lý tiền lương được phân tích chi tiết nhằm đáp ứng các yêu cầu vận hành tại UBND xã Tam Thăng.

Các tác nhân và yêu cầu hệ thống

  • Tác nhân (Actors): Người quản lý (kế toán), Nhân viên, Máy in, Người quản trị.
  • Yêu cầu chức năng: Phân rã thành 7 nhóm yêu cầu chính:
    • R1: Đăng nhập hệ thống (kiểm tra thông tin tài khoản người dùng, cấp quyền truy cập).
    • R2: Cập nhật hồ sơ nhân viên (thêm, sửa, xóa, tìm kiếm thông tin cá nhân của cán bộ).
    • R3: Quản lý lương (hiển thị thông tin lương, quản lý chế độ làm việc, tiền thưởng, tiền phụ cấp).
    • R4: Quản lý phòng ban (quản lý phân bổ cán bộ theo các bộ phận chức năng tại UBND xã).
    • R5: Quản lý chức vụ (theo dõi, cập nhật chức danh công tác của từng cán bộ).
    • R6: Thanh toán lương (chấm công, cập nhật bảng lương, chi trả lương theo tháng, in bảng lương).
    • R7: Thống kê (thống kê bảng lương theo tháng, tổng hợp quỹ lương, in báo cáo định kỳ).
  • Yêu cầu phi chức năng: Giao diện trực quan, rõ ràng, hỗ trợ thao tác thuận tiện cho người dùng làm công tác văn phòng; có khả năng thông báo lỗi khi dữ liệu nhập không hợp lệ.

Thiết kế cơ sở dữ liệu

Hệ thống sử dụng mô hình cơ sở dữ liệu quan hệ gồm 4 bảng dữ liệu thực thể chính để lưu trữ thông tin:

Tên bảng Tên trường Kiểu dữ liệu Vai trò / Diễn giải
Hồ sơ cán bộ nhân viên MaNV varchar(10) Khóa chính (Mã cán bộ nhân viên)
TenNV Nvarchar(50) Họ và tên nhân viên
Ngaysinh datetime Ngày tháng năm sinh
Gioitinh Nvarchar(10) Giới tính
Diachi Nvarchar(100) Địa chỉ thường trú
Dantoc Nvarchar(10) Dân tộc
Tongiao Nvarchar(10) Tôn giáo
SDT int Số điện thoại liên hệ
CMND int Số chứng minh nhân dân
Chức vụ MaCV Varchar(10) Khóa chính (Mã chức vụ)
TenCV Nvarchar(50) Tên gọi chức vụ
PhucapCV Float Định mức tiền phụ cấp chức vụ
Phòng ban MaPB Varchar(10) Khóa chính (Mã phòng ban)
TenPB Nvarchar(50) Tên phòng ban chức năng
SDT Varchar(50) Số điện thoại phòng ban
Lương Maluong Varchar(10) Khóa chính (Mã bản ghi lương)
MaNV Varchar(10) Mã cán bộ (Liên kết Hồ sơ nhân viên)
MaCV Varchar(10) Mã chức vụ (Liên kết bảng Chức vụ)
MaPB Varchar(10) Mã phòng ban (Liên kết bảng Phòng ban)
Chedo Nvarchar(50) Chế độ làm việc (biên chế/hợp đồng/thử việc)
Tienphucap Float Tiền phụ cấp tính toán
Hesoluong Float Hệ số lương chuyên môn
Tienthuong Float Tiền khen thưởng phát sinh
Luongcoban Float Mức lương cơ bản áp dụng
Ngaylap datetime Ngày lập bảng chi trả tiền lương

Triển khai chương trình demo

Chương trình được xây dựng trên môi trường Microsoft Visual Studio 2010 bằng ngôn ngữ C#. Các thành phần giao diện đã được thiết kế và kiểm thử hoạt động gồm có:

  • Cửa sổ đăng nhập: Sử dụng thông tin người dùng được thiết lập trước trong hệ thống. Chỉ khi tên đăng nhập và mật khẩu hợp lệ thì các chức năng quản trị mới được kích hoạt; hệ thống hiển thị thông báo lỗi khi thông tin không chính xác.
  • Giao diện chính: Đóng vai trò điều hướng tới các phân hệ quản lý hồ sơ, phòng ban, chức vụ, quản lý lương và thống kê.
  • Giao diện quản lý hồ sơ và chức vụ, phòng ban: Cung cấp các biểu mẫu nhập liệu để bổ sung cán bộ mới, điều chỉnh dữ liệu khi có thay đổi công tác hoặc xóa thông tin khi cán bộ chuyển công tác/nghỉ việc.
  • Giao diện tính lương và thanh toán: Cho phép kế toán chọn nhân viên, áp dụng các tham số hệ số lương, phụ cấp, tiền thưởng và tính ra số tiền chi trả thực tế theo công thức: Lương = Lương cơ bản + Phụ cấp + Tiền thưởng.
  • Giao diện tìm kiếm và thống kê: Hỗ trợ truy vấn hồ sơ nhân viên và xuất các báo cáo bảng lương theo tháng để phục vụ công tác đối soát, in ấn chứng từ.

Nội dung chính theo từng chương

Chương 1: Tổng quan về lý thuyết thiết kế hướng đối tượng

Chương 1 hệ thống hóa cơ sở lý thuyết về phân tích và thiết kế phần mềm. Tác giả làm rõ bản chất của phương pháp hướng đối tượng thông qua việc mô hình hóa thế giới thực thành các đối tượng độc lập tương đối, kết hợp giữa dữ liệu và các hành vi xử lý dữ liệu (bao gói thông tin). Các ưu điểm lớn của mô hình bao gồm: giảm thiểu lỗi nhờ việc kiểm thử và tái sử dụng mô-đun; loại bỏ rào cản giữa các giai đoạn phân tích, thiết kế và cài đặt; tăng khả năng bảo trì và phân rã các hệ thống phức tạp.

Nội dung chương đi sâu vào quy trình phân tích và thiết kế với UML:

  • Phân tích kiến trúc và phân tích ca sử dụng: Sử dụng ba kiểu lớp phân tích là lớp biên (boundary class - tương tác giữa hệ thống và tác nhân), lớp thực thể (entity class - lưu trữ thông tin lâu dài) và lớp điều khiển (control class - điều phối các luồng sự kiện và giao dịch).
  • Thiết kế hệ thống: Thiết kế kiến trúc mức hệ thống con, xác định giao diện, thiết kế chi tiết các thuộc tính, tác vụ và quan hệ phụ thuộc giữa các lớp.
  • Tổng quan các mô hình phát triển phần mềm (thác nước, thăm dò, tạo nguyên mẫu) và phân tích vai trò của 5 khung nhìn trong UML. Cuối chương giới thiệu chức năng của công cụ Rational Rose trong việc vẽ biểu đồ, quản lý kiến trúc và hỗ trợ sinh khung mã tự động.

Chương 2: Phân tích và thiết kế hệ thống

Chương 2 mô tả chi tiết bài toán quản lý tiền lương tại UBND xã Tam Thăng và hiện thực hóa mô hình thông qua hệ thống biểu đồ UML.

Tác giả xác định các ca sử dụng tổng quát và thực hiện phân rã thành hai nhánh chức năng lớn:

  1. Phân rã chức năng Cập nhật hồ sơ nhân viên: Bao gồm các ca sử dụng thành phần: Thêm hồ sơ, Tìm kiếm hồ sơ, Chỉnh sửa hồ sơ, Xóa hồ sơ, In hồ sơ.
  2. Phân rã chức năng Quản lý lương: Bao gồm các ca sử dụng thành phần: Quản lý thông tin lương, Thanh toán lương, Thống kê.

Mỗi ca sử dụng được đặc tả chi tiết về tác nhân kích hoạt, luồng sự kiện chính (chuỗi tương tác tuần tự khi dữ liệu hợp lệ) và luồng sự kiện phụ (xử lý ngoại lệ khi không tìm thấy dữ liệu, thông tin nhập sai hoặc hệ thống gặp sự cố). Đi kèm với mỗi ca sử dụng là hệ thống biểu đồ động:

  • Biểu đồ tuần tự (Sequence Diagram) và biểu đồ cộng tác (Collaboration Diagram): Đặc tả thứ tự gửi nhận thông điệp giữa tác nhân và các đối tượng biên, điều khiển, thực thể trong từng kịch bản (thêm nhân viên, tìm kiếm, sửa đổi, thanh toán lương, thống kê).
  • Mô hình lớp thiết kế (Design Class Diagram): Xác định cụ thể cấu trúc lớp cho gói quản lý hồ sơ nhân viên và gói quản lý lương.
  • Biểu đồ trạng thái (State Diagram): Mô hình hóa vòng đời và sự chuyển đổi trạng thái của Lớp Hồ sơ nhân viên (trong các thao tác thêm, sửa, xóa) và Lớp Lương nhân viên trong suốt quá trình chấm công, áp biểu lương và kết xuất thanh toán.

Chương 3: Xây dựng cơ sở dữ liệu – Thiết kế demo chương trình

Chương 3 trình bày việc chuyển đổi các mô hình phân tích logic sang cấu trúc cài đặt vật lý:

  • Mô hình cơ sở dữ liệu quan hệ: Cung cấp thiết kế chi tiết của 4 bảng thực thể (Hồ sơ cán bộ nhân viên, Chức vụ, Phòng ban, Lương). Mỗi bảng được định nghĩa rõ ràng về tên trường, kiểu dữ liệu kỹ thuật và chỉ định khóa chính, khóa ngoại để thiết lập liên kết quan hệ giữa nhân sự với chức vụ, phòng ban và quá trình hưởng lương.
  • Cài đặt chương trình: Thể hiện kết quả hiện thực hóa thiết kế thông qua các giao diện ứng dụng được lập trình bằng C#. Tác giả mô tả chi tiết cơ chế hoạt động của cửa sổ đăng nhập dựa trên lớp dữ liệu Người dùng, cùng các cửa sổ chức năng cập nhật thông tin nhân viên, quản lý danh mục phòng ban, chức vụ, bảng tính lương tự động và kết xuất thống kê báo cáo phục vụ kế toán cơ quan.

Kết quả và đóng góp

  • Kết quả cụ thể:
    • Hoàn thành đầy đủ hồ sơ phân tích thiết kế hướng đối tượng bằng UML cho bài toán quản lý lương cán bộ, bao gồm biểu đồ ca sử dụng, biểu đồ tuần tự, biểu đồ cộng tác, biểu đồ lớp và biểu đồ trạng thái.
    • Xây dựng mô hình cơ sở dữ liệu quan hệ chuẩn hóa với 4 bảng thực thể, đáp ứng toàn diện việc lưu trữ dữ liệu nhân sự, chức vụ, phòng ban và chi tiết lương.
    • Xây dựng thành công ứng dụng demo trên nền tảng Visual Studio 2010 và ngôn ngữ C#, tích hợp giao diện đăng nhập bảo mật và các phân hệ tính lương theo công thức kết hợp giữa lương cơ bản, hệ số lương, phụ cấp và tiền thưởng.
  • Giải pháp đề xuất: Đề xuất quy trình số hóa công tác quản lý cán bộ công chức cấp xã, thay thế các hình thức theo dõi thủ công bằng hệ thống cơ sở dữ liệu có cấu trúc, giúp nhân viên kế toán theo dõi biến động nhân sự, chấm công và in bảng lương định kỳ một cách chính xác.
  • Đóng góp do tác giả tự nêu: Xây dựng được mô hình cơ bản cho việc quản lý tiền lương tại cơ quan UBND xã Tam Thăng.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Tác giả tự đánh giá do hạn chế về thời gian cũng như kiến thức chuyên môn còn trong quá trình học tập, đề tài không tránh khỏi những thiếu sót nhất định trong quá trình phân tích và thiết kế. Sản phẩm của đề tài mới dừng lại ở mức độ chương trình demo mô phỏng quy trình nghiệp vụ cơ bản, chưa triển khai vận hành thực tế diện rộng hoặc kết nối với hệ thống phần cứng phân tán tại đơn vị.
  • Hướng mở: Dựa trên phạm vi nghiên cứu của đề tài, các hướng phát triển tiếp theo bao gồm việc hoàn thiện các ràng buộc dữ liệu nâng cao, tối ưu hóa giao diện người dùng, bổ sung cơ chế phân quyền bảo mật nhiều cấp cho người quản trị và nhân viên, đồng thời tiến hành kiểm thử thực tế trên toàn bộ dữ liệu nhân sự thực tế tại UBND xã Tam Thăng.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo phù hợp cho:

  • Đối tượng: Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về đề tài phân tích thiết kế hệ thống thông tin theo phương pháp hướng đối tượng; người làm công tác phát triển phần mềm quản lý nhân sự tại các đơn vị hành chính sự nghiệp cấp xã, phường.
  • Nội dung đáng tham khảo:
    • Quy trình mô hình hóa bài toán nghiệp vụ hành chính bằng công cụ UML (đặc biệt là phương pháp phân rã ca sử dụng, xây dựng biểu đồ tuần tự và biểu đồ cộng tác tương ứng).
    • Cấu trúc thiết kế cơ sở dữ liệu quan hệ cho bài toán quản lý nhân sự - tiền lương cán bộ công chức cơ sở.
    • Các bước kết nối từ tài liệu thiết kế Rational Rose sang giao diện ứng dụng C# trên Visual Studio.

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

1. Khóa luận giải quyết bài toán nghiệp vụ cho đơn vị cụ thể nào?

Khóa luận phân tích và giải quyết bài toán quản lý hồ sơ nhân sự và tính toán chi trả tiền lương cho cán bộ, công chức làm việc tại Ủy ban Nhân dân (UBND) xã Tam Thăng.

2. Hệ thống quản lý tiền lương trong đề tài gồm những tác nhân (actor) nào?

Hệ thống xác định 4 tác nhân tham gia tương tác gồm: Người quản lý (kế toán phụ trách nhân sự và tiền lương), Nhân viên, Máy in (thiết bị ngoại vi phục vụ in ấn bảng lương và báo cáo) và Người quản trị.

3. Cơ sở dữ liệu của phần mềm gồm những bảng dữ liệu nào?

Cơ sở dữ liệu của phần mềm được thiết kế với 4 bảng thực thể chính:

  1. Hồ sơ cán bộ nhân viên (lưu trữ thông tin cá nhân của nhân sự).
  2. Chức vụ (lưu trữ danh mục chức vụ và mức phụ cấp tương ứng).
  3. Phòng ban (lưu trữ danh sách các phòng ban chức năng và số điện thoại).
  4. Lương (lưu trữ chi tiết quá trình lao động, chế độ, hệ số lương, phụ cấp, thưởng và lương cơ bản).

4. Tiền lương của cán bộ công chức tại đơn vị được tính dựa trên nguyên tắc nào?

Theo mô tả nghiệp vụ của đề tài, tiền lương của cán bộ hàng tháng được tổng hợp từ các khoản: Lương cán bộ = Tiền lương cơ bản + Tiền phụ cấp + Tiền thưởng. Hệ thống hỗ trợ kế toán theo dõi các chế độ làm việc khác nhau (biên chế, hợp đồng, thử việc) và các khoản phụ cấp theo chức vụ.

5. Tác giả sử dụng các công cụ và công nghệ nào để hoàn thành khóa luận?

Đề tài sử dụng công cụ Rational Rose để phân tích và mô hình hóa hệ thống bằng ngôn ngữ UML; sử dụng môi trường Microsoft Visual Studio 2010 và ngôn ngữ lập trình C# để lập trình giao diện và xây dựng chương trình demo.

Kết luận

Khóa luận tốt nghiệp của sinh viên Nguyễn Thị Thu Thương (Khoa Công nghệ - Thông tin, Trường Đại học Quảng Nam) đã hệ thống hóa phương pháp phân tích thiết kế hướng đối tượng với UML và ứng dụng vào giải quyết bài toán quản lý tiền lương tại UBND xã Tam Thăng. Bằng việc phối hợp giữa công cụ mô hình hóa Rational Rose và môi trường lập trình C# trên Visual Studio 2010, đề tài đã hoàn thành hồ sơ thiết kế chi tiết từ biểu đồ ca sử dụng, tuần tự, cộng tác, lớp đến trạng thái và xây dựng thành công cơ sở dữ liệu cùng chương trình demo hoàn chỉnh. Đây là tài liệu học thuật thể hiện đầy đủ quy trình kỹ thuật phần mềm chuẩn mực từ khâu khảo sát nghiệp vụ, phân tích, thiết kế đến cài đặt thử nghiệm cho một bài toán quản lý thông tin thực tế.