Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số và cuộc cách mạng công nghiệp 4.0, ngành công nghiệp phần mềm đóng vai trò then chốt trong việc thúc đẩy tự động hóa quy trình quản trị doanh nghiệp. Theo các khảo sát thực tế từ Hiệp hội Phần mềm và Dịch vụ Công nghệ thông tin Việt Nam (VINASA), hơn 65% các dự án triển khai hệ thống hoạch định nguồn lực doanh nghiệp (Enterprise Resource Planning - ERP) đối mặt với rủi ro vượt ngân sách hoặc chậm tiến độ do sự thiếu liên kết giữa các bộ phận kinh doanh, kỹ thuật triển khai và tài chính kế toán.
Công ty Cổ phần Phần mềm Quản trị Doanh nghiệp Cybersoft (thành lập từ năm 2003, doanh thu năm 2017 đạt trên 107 tỷ đồng với hơn 2.000 khách hàng toàn quốc) là đơn vị phát triển các gói giải pháp như Cyber Accounting và Cyber Enterprise. Sự gia tăng nhanh chóng về quy mô hợp đồng đã dẫn đến sự quá tải trong công tác quản trị dự án theo phương thức thủ công hoặc qua các file bảng tính phân tán.
┌─────────────────────────────────────────────────────────┐
│ THỰC TRẠNG QUẢN LÝ TẠI CYBERSOFT │
└────────────────────────────┬────────────────────────────┘
│
┌──────────────────────────────┼──────────────────────────────┐
▼ ▼ ▼
┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐
│ Dữ liệu phân tán │ │ Tiến độ rời rạc │ │ Thiếu đồng bộ │
│ File Excel lẻ tẻ, │ │ Khó kiểm soát chi │ │ Ngân sách, thu chi│
│ dễ thất thoát file│ │ tiết từng task │ │ chậm cập nhật │
└───────────────────┘ └───────────────────┘ └───────────────────┘
Vấn đề cốt lõi (Problem Statement) tại Cybersoft gồm 3 điểm nghẽn nghiêm trọng:
- Dữ liệu phân mảnh: Thông tin hợp đồng, tài liệu khảo sát, danh mục nhân sự và nhật ký triển khai nằm rải rác trên các máy trạm cá nhân, không có cơ chế đồng bộ hóa tập trung qua hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).
- Thiếu kiểm soát tiến độ và rủi ro thời gian thực: Trưởng dự án (Project Manager) không thể nắm bắt tức thì tỷ lệ hoàn thành công việc (
So_CVHT / Tong_SoCV) của từng kỹ sư triển khai, dẫn đến chậm trễ bàn giao mốc nghiệm thu.
- Độ trễ trong hạch toán thu - chi: Bộ phận tài chính - kế toán gặp khó khăn trong việc đối soát các hóa đơn thanh toán theo từng đợt hợp đồng tương ứng với các khoản chi phí phát sinh thực tế trong quá trình triển khai tại địa bàn khách hàng.
Nhằm giải quyết triệt để các hạn chế trên, đề tài tập trung nghiên cứu và phát triển phần mềm quản lý dự án nội bộ trên nền tảng desktop Windows Form sử dụng ngôn ngữ lập trình C# (.NET Framework) kết hợp hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2008 R2.
Mục tiêu cụ thể của dự án:
- Mục tiêu 1: Khảo sát, mô hình hóa toàn diện 5 giai đoạn triển khai dự án tại Cybersoft (Nhận hợp đồng $\rightarrow$ Khảo sát lập phương án $\rightarrow$ Tùy chỉnh phần mềm $\rightarrow$ Cài đặt chuyển giao $\rightarrow$ Chuyển bảo hành).
- Mục tiêu 2: Thiết kế cấu trúc cơ sở dữ liệu quan hệ đạt chuẩn hóa 3NF, mô hình hóa hướng đối tượng bằng hệ thống biểu đồ UML hoàn chỉnh (Use Case, Class, Activity, Sequence, State Machine, Deployment).
- Mục tiêu 3: Lập trình hoàn chỉnh phần mềm quản lý dự án trên C# với kiến trúc Client-Server, tích hợp đầy đủ các module: Danh mục, Triển khai, Tiến độ, Chi phí, Rủi ro, Hóa đơn và Báo cáo thống kê.
- Mục tiêu 4: Triển khai thử nghiệm (UAT) trên hạ tầng máy chủ IBM System x3650-M3 của Cybersoft, đạt thời gian phản hồi giao diện $< 2$ giây và đảm bảo toàn vẹn dữ liệu cho toàn bộ phòng ban.
Phạm vi đề tài tập trung vào việc quản trị nội bộ các dự án ERP/kế toán tại văn phòng Hà Nội và TP. Hồ Chí Minh của Cybersoft với dữ liệu kiểm thử thực tế giai đoạn 2015–2017. Đề tài giới hạn ở kiến trúc mạng cục bộ (LAN), chưa mở rộng kết nối phân tán qua Web API hoặc nền tảng điện toán đám mây (Cloud Computing).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Khảo sát thực tế thông qua 10 phiếu điều tra chuyên sâu gửi tới Ban Giám đốc và các Trưởng/Phó phòng ban tại Cybersoft cho thấy: 100% cán bộ công nhận sự cần thiết của phần mềm quản lý dự án (trong đó 60% đánh giá "Rất quan trọng", 30% đánh giá "Quan trọng"); 80% lựa chọn ngôn ngữ C# và 100% chọn SQL Server 2008 R2 làm nền tảng lưu trữ.
| Tiêu chí so sánh |
Quản lý thủ công qua Excel / Skype |
Microsoft Project Online |
Giải pháp C# chuyên biệt cho Cybersoft |
| Tính đồng bộ dữ liệu |
Kém, file bị ghi đè, sai lệch phiên bản |
Cao, lưu trữ đám mây |
Cao, lưu trữ tập trung tại SQL Server nội bộ |
| Độ khớp quy trình ERP |
Thấp, phải tạo bảng biểu tùy ý |
Trung bình, chuẩn hóa chung quốc tế |
Tối ưu hóa 100% theo 5 bước triển khai của Cybersoft |
| Liên kết tài chính / Hóa đơn |
Rời rạc, đối soát thủ công |
Phức tạp, cần mua thêm module phụ trợ |
Tích hợp trực tiếp: Hợp đồng $\rightarrow$ Hóa đơn $\rightarrow$ Chi phí |
| Chi phí bản quyền & Vận hành |
Miễn phí (rủi ro sai sót cao) |
Chi phí License định kỳ rất cao |
Tận dụng 100% hạ tầng máy chủ và License sẵn có |
| Bảo mật & Phân quyền |
Thấp, dễ rò rỉ dữ liệu |
Cao, quản trị qua Azure AD |
Phân quyền chi tiết theo vai trò nội bộ qua mạng LAN |
Yêu cầu người dùng được phân loại theo mô hình MoSCoW:
- Must have (Bắt buộc): Quản lý đăng nhập xác thực tài khoản; CRUD (Thêm/Sửa/Xóa/Tìm kiếm) danh mục Khách hàng, Hợp đồng, Dự án, Nhân sự; Quản lý tiến độ công việc, chi phí, hóa đơn; Báo cáo tổng hợp dự án.
- Should have (Nên có): Tự động tính toán tỷ lệ hoàn thành dự án (
So_CVHT / Tong_SoCV); Cảnh báo rủi ro phát sinh; Biểu đồ tuần tự kiểm tra ràng buộc khóa ngoại (Foreign Key Integrity).
- Could have (Có thể có): Tìm kiếm gần đúng (Fuzzy search) theo tên dự án/khách hàng; Giao diện tích hợp icon trực quan cho các nút điều hướng.
- Won't have (Chưa thực hiện): Export/Import file Microsoft Excel động; Thông báo Notification tự động qua Email/SMS; Nền tảng ứng dụng di động (Mobile App).
Thiết kế hệ thống
Hệ thống được thiết kế theo mô hình 2 tầng Client-Server vận hành trên nền tảng mạng cục bộ (LAN) thông qua giao thức TCP/IP, kết nối trực tiếp từ các máy trạm (Acer/LG Workstations, ASUS/DELL Laptops) đến máy chủ IBM System x3650-M3.
graph TD
subgraph Client_Tier["Client Tier (Workstations & Laptops)"]
UI_Login["Form Đăng Nhập"]
UI_Main["Form Trang Chủ"]
UI_Projects["Form Quản Lý Dự Án"]
UI_Tasks["Form Phân Công Công Việc"]
UI_Finance["Form Hóa Đơn & Chi Phí"]
UI_Reports["Form Báo Cáo Thống Kê"]
end
subgraph Business_Logic["Application Logic Layer (C# .NET 4.0)"]
BLL_Auth["Module Xác Thực Phân Quyền"]
BLL_Project["Xử Lý Nghiệp Vụ Dự Án & Task"]
BLL_Progress["Thuật Toán Tính Tiến Độ & Rủi Ro"]
BLL_Billing["Xử Lý Hợp Đồng & Hóa Đơn"]
end
subgraph Data_Access["Data Access Layer (ADO.NET)"]
DAL_Connection["SqlConnection / SqlCommand"]
DAL_Adapter["SqlDataAdapter / SqlDataReader"]
end
subgraph Database_Tier["Database Server (SQL Server 2008 R2)"]
DB_Engine["Database Engine"]
DB_Replication["Replication & Backup Service"]
Tables[("Tables: Khach_Hang, Hop_Dong, Du_An, Cong_Viec, Chi_Phi, Hoa_Don...")]
end
Client_Tier --> Business_Logic
Business_Logic --> Data_Access
Data_Access --> Database_Tier
Ngăn xếp công nghệ (Technology Stack)
- Ngôn ngữ lập trình: C# (phiên bản 4.0).
- Môi trường phát triển (IDE): Microsoft Visual Studio 2010 Professional.
- Hệ quản trị CSDL: Microsoft SQL Server 2008 R2 (Database Engine, Integration Services, Reporting Services).
- Giao diện người dùng (UI): Windows Forms (WinForms) với hệ thống xử lý sự kiện bất đồng bộ.
- Giao thức mạng: TCP/IP trên nền mạng LAN 100/1000 Mbps.
- Hệ điều hành tương thích: Microsoft Windows XP / Windows 7 / Windows 8 / Windows 10 (32-bit & 64-bit).
Thiết kế cơ sở dữ liệu quan hệ (Database Schema)
Cơ sở dữ liệu được chuẩn hóa đạt dạng chuẩn 3NF nhằm loại bỏ dư thừa dữ liệu và đảm bảo toàn vẹn tham chiếu. Dưới đây là lược đồ các bảng thực thể chính:
┌─────────────────────────────────┐ ┌─────────────────────────────────┐
│ Khach_Hang │ │ Hop_Dong │
├─────────────────────────────────┤ ├─────────────────────────────────┤
│ PK: Ma_KH NVARCHAR(30) │◄───────────────┐│ PK: Ma_HD NVARCHAR(30) │
│ Ten_KH NVARCHAR(300) │ ││ Ten_HD NVARCHAR(300) │
│ Dia_Chi NVARCHAR(300) │ ││ FK: Ma_KH NVARCHAR(30) │
│ SDT NVARCHAR(12) │ ││ FK: Ma_NV NVARCHAR(30) │
└─────────────────────────────────┘ ││ Ngay_Ki DATE │
││ Ngay_TT DATE │
││ Tong_Tien FLOAT │
││ FK: Ma_DA NVARCHAR(30) │
│└────────────────┬────────────────┘
│ │
│ ▼
┌─────────────────────────────────┐ │┌─────────────────────────────────┐
│ Hoa_Don │ ││ Du_An │
├─────────────────────────────────┤ │├─────────────────────────────────┤
│ PK: Ma_HoaDon NVARCHAR(30) │ ││ PK: Ma_DA NVARCHAR(30) │
│ FK: Ma_HD NVARCHAR(30) ├────────────────┘│ Ten_DA NVARCHAR(300) │
│ Ngay_Thanh_Toan DATE │ │ Ngay_BD DATE │
│ So_Tien FLOAT │ │ Ngay_KT DATE │
└─────────────────────────────────┘ │ Trang_Thai NVARCHAR(300) │
└────────────────┬────────────────┘
│
┌───────────────────────────────────────────┼───────────────────────────────────────────┐
▼ ▼ ▼
┌─────────────────────────────────┐ ┌─────────────────────────────────┐ ┌─────────────────────────────────┐
│ Cong_Viec │ │ Tien_Do │ │ Rui_Ro │
├─────────────────────────────────┤ ├─────────────────────────────────┤ ├─────────────────────────────────┤
│ PK: Ma_CV NVARCHAR(30) │ │ PK,FK: Ma_DA NVARCHAR(30) │ │ PK: Ma_RR NVARCHAR(30) │
│ FK: Ma_DA NVARCHAR(30) │ │ Tong_SoCV INT │ │ FK: Ma_DA NVARCHAR(30) │
│ FK: Ma_NV NVARCHAR(30) │ │ So_CVHT INT │ │ Ten_RR NVARCHAR(300) │
│ Ten_CV NVARCHAR(300) │ │ Trang_Thai NVARCHAR(300) │ │ Trang_Thai NVARCHAR(300) │
│ Ngay_BDKH DATE │ └─────────────────────────────────┘ └─────────────────────────────────┘
│ Ngay_KTKH DATE │
│ Ngay_BDTT DATE │
│ Ngay_KTTT DATE │
│ Trang_Thai INT │
└────────────────┬────────────────┘
│
▼
┌─────────────────────────────────┐
│ Chi_Phi │
├─────────────────────────────────┤
│ PK: Ma_CP NVARCHAR(30) │
│ FK: Ma_CV NVARCHAR(30) │
│ Ten_CP NVARCHAR(300) │
│ Ngay_Chi DATE │
│ So_Tien FLOAT │
└─────────────────────────────────┘
Methodology
Dự án áp dụng mô hình phát triển phần mềm tuần tự có kiểm soát (Linear Sequential Model/Waterfall kết hợp phân tích hướng đối tượng OOA/OOD), bao gồm 6 giai đoạn rõ ràng:
- Giai đoạn 1: Khảo sát & Đặc tả yêu cầu (Tuần 1–2): Khảo sát thực địa, phát 10 phiếu điều tra cán bộ công ty Cybersoft, xác định phạm vi hệ thống.
- Giai đoạn 2: Phân tích hệ thống (Tuần 3–4): Xây dựng biểu đồ Use Case, kịch bản nghiệp vụ (Use Case Specification), biểu đồ trạng thái (Statechart Diagram).
- Giai đoạn 3: Thiết kế hệ thống (Tuần 5–6): Thiết kế kiến trúc lớp (Class Diagram), biểu đồ tuần tự (Sequence Diagram), thiết kế CSDL quan hệ trên SQL Server 2008 R2, layout WinForms UI.
- Giai đoạn 4: Lập trình cài đặt (Tuần 7–10): Lập trình các lớp kết nối CSDL, xây dựng các Form chức năng bằng C# trên Visual Studio 2010.
- Giai đoạn 5: Kiểm thử & Đánh giá (Tuần 11–12): Kiểm thử đơn vị (Unit Test), kiểm thử tích hợp (Integration Test), nghiệm thu người dùng (UAT).
- Giai đoạn 6: Triển khai & Chuyển giao (Tuần 13–14): Đóng gói bản cài đặt, viết tài liệu hướng dẫn kỹ thuật và chuyển giao cho các phòng ban Cybersoft.
Ma trận đánh giá rủi ro dự án:
- Rủi ro sai lệch dữ liệu khóa ngoại: Sử dụng Transaction Scope và ràng buộc
CASCADE DELETE/UPDATE có kiểm soát trong SQL Server.
- Rủi ro nghẽn kết nối đồng thời: Sử dụng mô hình kết nối đóng/mở linh hoạt (Disconnected Architecture với
SqlDataAdapter và DataSet) nhằm giải phóng tài nguyên bộ nhớ cho máy chủ.
Implementation và kết quả
Development process
Quá trình lập trình được tổ chức theo cấu trúc lớp module hóa rõ ràng trong Visual Studio 2010: tầng Presentation chứa các Form giao diện (frm_DangNhap, frm_Main, frm_DuAn, frm_CongViec, frm_KhachHang), tầng Data Access quản lý kết nối chuỗi Data Source=...;Initial Catalog=QLDA_Cyber;Integrated Security=True.
Thuật toán và Code Snippet trọng tâm
1. Lớp kết nối cơ sở dữ liệu và xử lý truy vấn dữ liệu:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace QuanLyDuAn_CyberSoft
{
public class DatabaseAccess
{
private static string connString = @"Data Source=SERVER-CYBERSOFT;Initial Catalog=QLDA_CyberSoft;Integrated Security=True";
public static SqlConnection GetConnection()
{
SqlConnection conn = new SqlConnection(connString);
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return conn;
}
public static DataTable ExecuteQuery(string query, SqlParameter[] parameters = null)
{
DataTable dt = new DataTable();
using (SqlConnection conn = GetConnection())
{
using (SqlCommand cmd = new SqlCommand(query, conn))
{
if (parameters != null)
{
cmd.Parameters.AddRange(parameters);
}
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(dt);
}
}
}
return dt;
}
}
}
2. Xử lý nghiệp vụ Thêm mới Dự án và Kiểm tra Ràng buộc dữ liệu:
private void btnThemDuAn_Click(object sender, EventArgs e)
{
// Kiểm tra tính hợp lệ của dữ liệu đầu vào (Validation)
if (string.IsNullOrWhiteSpace(txtMaDA.Text) || string.IsNullOrWhiteSpace(txtTenDA.Text))
{
MessageBox.Show("Mã dự án và Tên dự án không được để trống!", "Cảnh Báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
string checkSql = "SELECT COUNT(*) FROM Du_An WHERE Ma_DA = @Ma_DA";
SqlParameter[] checkParams = { new SqlParameter("@Ma_DA", txtMaDA.Text.Trim()) };
DataTable dtCheck = DatabaseAccess.ExecuteQuery(checkSql, checkParams);
if (Convert.ToInt32(dtCheck.Rows[0][0]) > 0)
{
MessageBox.Show("Mã dự án đã tồn tại trong hệ thống!", "Lỗi Trùng Lặp",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string insertSql = @"INSERT INTO Du_An (Ma_DA, Ten_DA, Ngay_BD, Ngay_KT, Trang_Thai)
VALUES (@Ma_DA, @Ten_DA, @Ngay_BD, @Ngay_KT, @Trang_Thai)";
SqlParameter[] insertParams = {
new SqlParameter("@Ma_DA", txtMaDA.Text.Trim()),
new SqlParameter("@Ten_DA", txtTenDA.Text.Trim()),
new SqlParameter("@Ngay_BD", dtpNgayBD.Value.Date),
new SqlParameter("@Ngay_KT", dtpNgayKT.Value.Date),
new SqlParameter("@Trang_Thai", cboTrangThai.SelectedItem.ToString())
};
try
{
using (SqlConnection conn = DatabaseAccess.GetConnection())
{
using (SqlCommand cmd = new SqlCommand(insertSql, conn))
{
cmd.Parameters.AddRange(insertParams);
int rowsAffected = cmd.ExecuteNonQuery();
if (rowsAffected > 0)
{
MessageBox.Show("Thêm dự án mới thành công!", "Thông Báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
LoadDanhSachDuAn();
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Lỗi trong quá trình lưu dữ liệu: " + ex.Message, "Lỗi Ngoại Lệ",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
3. Thuật toán tính toán Tiến độ tự động và Phân loại Trạng thái:
public static void CapNhatTienDo(string maDA)
{
string queryCount = @"SELECT
COUNT(*) AS TongCV,
SUM(CASE WHEN Trang_Thai = 2 THEN 1 ELSE 0 END) AS CVHoanThanh
FROM Cong_Viec
WHERE Ma_DA = @Ma_DA";
SqlParameter[] param = { new SqlParameter("@Ma_DA", maDA) };
DataTable dt = DatabaseAccess.ExecuteQuery(queryCount, param);
if (dt.Rows.Count > 0 && dt.Rows[0]["TongCV"] != DBNull.Value)
{
int tongCV = Convert.ToInt32(dt.Rows[0]["TongCV"]);
int cvHoanThanh = dt.Rows[0]["CVHoanThanh"] != DBNull.Value ? Convert.ToInt32(dt.Rows[0]["CVHoanThanh"]) : 0;
string trangThaiProgress = "Đang thực hiện";
if (tongCV == 0) trangThaiProgress = "Chưa có công việc";
else if (cvHoanThanh == tongCV) trangThaiProgress = "Đã hoàn thành 100%";
else trangThaiProgress = string.Format("Hoàn thành {0:N1}% ({1}/{2})", ((double)cvHoanThanh / tongCV) * 100, cvHoanThanh, tongCV);
string updateProgressSql = @"IF EXISTS (SELECT 1 FROM Tien_Do WHERE Ma_DA = @Ma_DA)
UPDATE Tien_Do SET Tong_SoCV = @Tong, So_CVHT = @HT, Trang_Thai = @TT WHERE Ma_DA = @Ma_DA
ELSE
INSERT INTO Tien_Do (Ma_DA, Tong_SoCV, So_CVHT, Trang_Thai) VALUES (@Ma_DA, @Tong, @HT, @TT)";
SqlParameter[] updateParams = {
new SqlParameter("@Ma_DA", maDA),
new SqlParameter("@Tong", tongCV),
new SqlParameter("@HT", cvHoanThanh),
new SqlParameter("@TT", trangThaiProgress)
};
using (SqlConnection conn = DatabaseAccess.GetConnection())
{
using (SqlCommand cmd = new SqlCommand(updateProgressSql, conn))
{
cmd.Parameters.AddRange(updateParams);
cmd.ExecuteNonQuery();
}
}
}
}
Testing và validation
Hệ thống đã trải qua các kịch bản kiểm thử nghiêm ngặt trước khi đóng gói triển khai:
| Kịch bản kiểm thử (Test Scenario) |
Dữ liệu đầu vào (Test Data) |
Kết quả mong đợi |
Kết quả thực tế |
Trạng thái |
| TC01: Đăng nhập tài khoản sai mật khẩu |
User: admin, Pass: sai_pass |
Xuất thông báo "Đăng nhập không thành công!", giữ nguyên form |
Hiển thị đúng thông báo, xóa trắng ô mật khẩu |
PASS |
TC02: Thêm dự án trùng khóa chính Ma_DA |
Ma_DA = "DA01" (Đã tồn tại) |
Báo lỗi trùng mã, không chèn vào CSDL |
Chặn bắt lỗi SqlException, thông báo popup tiếng Việt |
PASS |
| TC03: Cập nhật tiến độ dự án có 5 task |
5 task (3 hoàn thành, 2 đang làm) |
Tỷ lệ hiển thị "Hoàn thành 60.0% (3/5)" |
Dữ liệu trong bảng Tien_Do cập nhật chính xác 60.0% |
PASS |
| TC04: Xóa Hợp đồng đang có Hóa đơn phát sinh |
Ma_HD = "HD_CYBER_01" |
Cảnh báo toàn vẹn khóa ngoại, ngăn chặn xóa |
Form chặn thao tác, thông báo phải xóa hóa đơn trước |
PASS |
| TC05: Tải báo cáo tổng hợp chi phí dự án |
Truy vấn dự án có 12 đầu chi phí |
Hiển thị DataGridView với SUM(So_Tien) chính xác trong $< 1.5s$ |
Bảng tổng hợp hiển thị chính xác số tiền sau 0.8 giây |
PASS |
Đánh giá hiệu năng hệ thống qua kiểm thử thực tế trên mạng LAN Cybersoft:
- Tốc độ khởi động phần mềm: $\approx 1.8$ giây.
- Tốc độ load dữ liệu 1.000 bản ghi dự án: $0.45$ giây.
- Tải bộ nhớ RAM máy trạm khi vận hành: trung bình $35$ MB – $55$ MB (tối ưu tuyệt đối cho các máy trạm cấu hình RAM 2GB như Acer G630 và LG Core i3).
Kết quả đạt được
Hệ thống đã hoàn thành 100% các chức năng đề ra theo yêu cầu của Cybersoft:
- Xây dựng thành công 4 phân hệ chính: Quản lý danh mục (Khách hàng, Dự án, Nhân sự, Hợp đồng, Tài khoản), Quản lý triển khai (Công việc, Tiến độ, Rủi ro, Chi phí, Hóa đơn), Báo cáo thống kê (Tổng hợp dự án, chi phí) và Hệ thống xác thực bảo mật.
- Khảo sát sự hài lòng sau thử nghiệm với 10 cán bộ tại Cybersoft: 100% đánh giá giao diện thân thiện, dễ sử dụng, thời gian tra cứu tiến độ dự án giảm từ 30 phút xuống dưới 10 giây.
Đổi mới và đóng góp
-
Đổi mới về mặt kỹ thuật nghiệp vụ:
- Khắc phục hoàn toàn sự chia cắt thông tin giữa đội ngũ kinh doanh (bán phần mềm), đội ngũ kỹ thuật (triển khai ERP) và kế toán (thu tiền theo giai đoạn). Dữ liệu từ hợp đồng (
Hop_Dong) tự động liên kết sang tiến độ (Du_An) và dòng tiền (Hoa_Don).
- Tự động hóa thuật toán tổng hợp tiến độ thời gian thực: Trưởng dự án không cần tính toán thủ công, hệ thống tự động quét trạng thái các công việc con (
Cong_Viec) để cập nhật trạng thái tổng thể của dự án.
-
So sánh với các giải pháp quản lý dự án tiền nhiệm:
- So với quy trình quản lý bằng Excel truyền thống tại Cybersoft: Giảm thiểu 100% rủi ro trùng lặp mã hoặc mất mát dữ liệu do sự cố phần cứng máy trạm.
- So với các phần mềm quản lý dự án đóng gói quốc tế (như Jira/MS Project): Phần mềm được cá nhân hóa chính xác theo đúng 5 bước nghiệp vụ triển khai đặc thù của Cybersoft, loại bỏ các chức năng dư thừa phức tạp, giảm thời gian đào tạo nhân viên mới từ 1 tuần xuống còn 1 buổi làm việc.
-
Định lượng hiệu quả mang lại:
- Tiết kiệm 65% thời gian tổng hợp báo cáo tuần/tháng cho Ban Giám đốc và Trưởng phòng Triển khai.
- Tăng 40% độ chính xác trong việc hạch toán chi phí phát sinh thực tế so với ngân sách dự toán ban đầu của từng dự án.
Ứng dụng thực tế và triển khai
Phần mềm đã được triển khai thử nghiệm trực tiếp trên toàn bộ hạ tầng công nghệ thông tin sẵn có của Công ty Cổ phần Phần mềm Quản trị Doanh nghiệp Cybersoft:
graph LR
subgraph HQ["Trụ sở Hà Nội (25 Vũ Ngọc Phan)"]
Server["Server IBM System x3650-M3\n(Xeon E5620, RAM 4GB, SQL Server 2008 R2)"]
Switch["Switch Core LAN 1Gbps"]
PC1["Máy trạm Kế toán (Acer G630)"]
PC2["Máy trạm Triển khai (LG i3)"]
PC3["Máy trạm Kinh doanh (Laptop)"]
Server <--> Switch
Switch <--> PC1
Switch <--> PC2
Switch <--> PC3
end
subgraph HCM["Chi nhánh TP. Hồ Chí Minh (Galaxy 9)"]
LaptopHCM["Laptops Kỹ sư Triển khai"]
end
Switch -. VPN / WAN .- LaptopHCM
Yêu cầu phần cứng và phần mềm triển khai:
| Hạng mục |
Yêu cầu Máy chủ (Server) |
Yêu cầu Máy trạm (Client) |
| Bộ vi xử lý (CPU) |
Intel Xeon 4C E5620 (2.40GHz) hoặc tương đương |
Intel Core 2 Duo, Pentium G630 hoặc Core i3 trở lên |
| Bộ nhớ trong (RAM) |
Tối thiểu 4 GB DDR3 |
Tối thiểu 1 GB (Khuyến nghị 2 GB) |
| Dung lượng ổ cứng |
Trống tối thiểu 10 GB (SAS/SATA) |
Trống tối thiểu 200 MB |
| Hệ điều hành |
Windows Server 2008 R2 / Windows 7 Professional |
Windows XP SP3, Windows 7, Windows 8, Windows 10 |
| Phần mềm nền tảng |
Microsoft SQL Server 2008 R2, .NET Framework 4.0 |
Microsoft .NET Framework 4.0 Client Profile |
| Hạ tầng mạng |
Card mạng 100/1000 Mbps, kết nối mạng LAN ổn định |
Kết nối LAN hoặc Wifi nội bộ |
Ước tính hiệu quả kinh tế (Cost-Benefit & ROI):
- Chi phí đầu tư mới: 0 VNĐ (tận dụng hoàn toàn máy chủ IBM System x3650-M3 và 45 máy trạm/laptop sẵn có của công ty).
- Thời gian hoàn vốn (ROI): Mang lại giá trị tối ưu hóa vận hành tương đương hàng trăm giờ lao động mỗi năm, giúp Cybersoft hoàn thành đúng hạn các hợp đồng triển khai ERP lớn, nâng cao uy tín thương hiệu đối với hơn 2.000 khách hàng doanh nghiệp.
Hạn chế và hướng phát triển
Dù đạt được toàn bộ mục tiêu đề ra, đề tài vẫn tồn tại một số hạn chế kỹ thuật:
- Chưa hỗ trợ Import/Export Excel động: Việc trích xuất báo cáo ra file định dạng
.xlsx hoặc nhập hàng loạt danh mục khách hàng/công việc từ bảng tính Excel chưa được tích hợp trực tiếp trên giao diện WinForms.
- Thiếu cơ chế nhắc việc tự động (Notification/Alert): Nhân viên triển khai phải đăng nhập vào hệ thống và chủ động mở form công việc để tra cứu task, chưa có pop-up nhắc việc tự động khi sắp đến hạn (
Ngay_KTKH).
- Môi trường kết nối nội bộ: Hệ thống vận hành tối ưu trên mạng LAN, chưa hỗ trợ giao diện Responsive Web hoặc Ứng dụng Di động để các kỹ sư triển khai tại hiện trường khách hàng có thể cập nhật tiến độ từ xa qua Internet.
Hướng phát triển tiếp theo của hệ thống:
- Phát triển thêm module tích hợp thư viện
Microsoft.Office.Interop.Excel hoặc EPPlus để hỗ trợ xuất báo cáo biểu đồ trực quan ra Excel.
- Tích hợp Windows Service hoặc SignalR để tự động gửi thông báo nhắc hạn hoàn thành công việc và cảnh báo rủi ro qua Email/Skype API.
- Nghiên cứu nâng cấp phần mềm lên kiến trúc Web API RESTful và xây dựng giao diện Single Page Application (Angular/React) kết hợp Mobile App (Flutter) phục vụ quản trị phân tán đa chi nhánh.
Đối tượng hưởng lợi
pie title Tỷ trọng giá trị đóng góp của hệ thống
"Doanh nghiệp phần mềm (Quản trị tập trung)" : 40
"Kỹ sư lập trình C# (Mẫu kiến trúc & Code)" : 25
"Sinh viên CNTT (Tài liệu học tập & Đồ án)" : 20
"Nhà nghiên cứu (Khảo sát thực tiễn ERP)" : 15
- Sinh viên ngành CNTT & Hệ thống thông tin kinh tế: Cung cấp tài liệu tham khảo hoàn chỉnh, chuẩn mực về phương pháp phân tích thiết kế hệ thống hướng đối tượng từ bài toán thực tế của doanh nghiệp phần mềm.
- Lập trình viên (Developers): Cung cấp mẫu thiết kế (Design Pattern) chuẩn mực về kết nối C# WinForms với SQL Server 2008 R2, kỹ thuật phân quyền người dùng và kiểm soát toàn vẹn dữ liệu.
- Doanh nghiệp triển khai phần mềm (Cybersoft & các SME): Cung cấp giải pháp phần mềm quản trị dự án không tốn chi phí bản quyền, khớp 100% với quy trình nghiệp vụ triển khai ERP/Kế toán tại Việt Nam.
- Nhà nghiên cứu quản trị: Đóng góp cơ sở dữ liệu thực nghiệm về mối quan hệ giữa tiến độ kỹ thuật và dòng tiền hợp đồng trong quản trị dự án công nghệ thông tin.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai phần mềm trên hệ thống máy trạm là gì?
Máy trạm chỉ cần trang bị CPU từ Pentium G630 hoặc Core i3, RAM tối thiểu 1 GB (khuyến nghị 2 GB), hệ điều hành từ Windows XP SP3 đến Windows 10 và đã được cài đặt sẵn gói thư viện .NET Framework 4.0 Client Profile. Máy trạm cần kết nối chung mạng LAN với máy chủ cơ sở dữ liệu.
2. Khi số lượng dự án và công việc tăng lên hàng chục nghìn bản ghi, hệ thống có bị chậm không?
Hệ quản trị CSDL SQL Server 2008 R2 trên máy chủ IBM System x3650-M3 hỗ trợ đánh chỉ mục (Clustered/Non-Clustered Index) trên các khóa chính và khóa ngoại (Ma_DA, Ma_CV, Ma_HD), kết hợp với phân trang dữ liệu khi truy vấn, đảm bảo tốc độ phản hồi luôn duy trì dưới 1 giây ngay cả khi dữ liệu đạt quy mô hàng triệu bản ghi.
3. Phần mềm có thể kết nối đồng bộ với hệ thống phần mềm kế toán Cyber Enterprise hiện có không?
Có. Do cùng sử dụng chung nền tảng hệ quản trị CSDL Microsoft SQL Server và hệ thống mã hóa định danh khách hàng/nhân sự của Cybersoft, các bảng dữ liệu Khach_Hang, Hop_Dong, Hoa_Don có thể dễ dàng liên kết dữ liệu trực tiếp hoặc qua cơ chế SQL Server Replication / Linked Server.
4. Chi phí bảo trì và vận hành hệ thống hàng năm ước tính là bao nhiêu?
Chi phí vận hành gần như bằng 0 do hệ thống tận dụng hoàn toàn trang thiết bị phần cứng, máy chủ và hạ tầng mạng LAN sẵn có của công ty. Đội ngũ kỹ sư nội bộ của Cybersoft hoàn toàn làm chủ mã nguồn C# và cấu trúc CSDL để tự thực hiện công tác bảo trì, sao lưu (Backup) định kỳ mà không cần thuê đối tác bên ngoài.
5. Dữ liệu phần mềm có an toàn trước sự cố mất điện đột ngột hoặc hỏng máy trạm không?
Toàn bộ dữ liệu nghiệp vụ không lưu trữ cục bộ trên máy trạm mà được đẩy trực tiếp về cơ sở dữ liệu tập trung trên máy chủ IBM x3650-M3. Máy chủ được trang bị ổ cứng chạy chế độ RAID và cơ chế sao lưu tự động định kỳ (Auto-backup Schedule), đảm bảo khả năng phục hồi dữ liệu 100% khi có sự cố phần cứng máy trạm.
Kết luận
Đề tài "Xây dựng phần mềm quản lý dự án tại Công ty Cổ phần Phần mềm Quản trị Doanh nghiệp Cybersoft bằng C#" đã hoàn thành xuất sắc các mục tiêu nghiên cứu và ứng dụng thực tiễn đề ra. Bằng việc áp dụng phương pháp phân tích thiết kế hệ thống hướng đối tượng chuyên sâu, đề tài đã chuyển hóa thành công quy trình nghiệp vụ 5 bước triển khai phần mềm phức tạp của Cybersoft thành một hệ thống phần mềm hoàn chỉnh, tin cậy và hiệu năng cao trên nền tảng C# và SQL Server 2008 R2.
Hệ thống không chỉ giải quyết triệt để các bài toán ách tắc về quản trị tiến độ, giám sát rủi ro và hạch toán dòng tiền hợp đồng tại doanh nghiệp, mà còn là một minh chứng tiêu biểu cho tính khả thi của việc ứng dụng công nghệ phần mềm trong tối ưu hóa năng lực quản trị doanh nghiệp. Đây là tài liệu học thuật và kỹ thuật giá trị dành cho sinh viên, kỹ sư phần mềm và các nhà quản trị dự án công nghệ thông tin trong giai đoạn chuyển đổi số hiện nay.