Tổng quan luận án

Tính cấp thiết và khoảng trống nghiên cứu

Trong công nghiệp phần mềm, quản trị dự án là một hoạt động phức tạp bao gồm việc lập kế hoạch, điều phối nguồn lực, theo dõi và triển khai sản phẩm. Thực tế ghi nhận đa số các nhà quản lý dự án phần mềm vẫn dựa vào kinh nghiệm cá nhân và trực giác để quản lý tiến độ, thiếu vắng các công cụ khoa học có khả năng định lượng rủi ro. Rủi ro được định nghĩa trong nghiên cứu này là các sự kiện hoặc điều kiện không chắc chắn mà nếu xảy ra sẽ gây tác động tiêu cực đến một hoặc nhiều kết quả của dự án phần mềm (chi phí, thời gian, chất lượng).

Số liệu thống kê trong ngành cho thấy tình trạng thất bại và trễ hạn diễn ra phổ biến:

  • 83,8% dự án phần mềm bị vượt ngân sách hoặc chậm tiến độ.
  • 52,7% dự án bàn giao sản phẩm với ít tính năng hơn so với đặc tả ban đầu.
  • 31,1% dự án bị hủy bỏ hoặc chấm dứt sớm.
  • Trong số các dự án hoàn thành, chỉ 61% đáp ứng đầy đủ các chức năng và tính năng đã xác định ban đầu.

Văn bản luận án dẫn chứng các trường hợp thực tế về sự cố tiến độ và chi phí:

  • Dự án Đường sắt đô thị Hà Nội tuyến 2A (Cát Linh - Hà Đông): Phê duyệt năm 2008, kế hoạch vận hành năm 2013, tổng vốn đầu tư tăng gần gấp đôi lên 868 triệu USD và kéo dài nhiều năm chưa hoàn tất tại thời điểm khảo sát.
  • Dự án Cơ sở dữ liệu quốc gia về dân cư (Việt Nam): Phê duyệt năm 2015, kế hoạch hoàn thành trong hai năm (2016-2017), nhưng đến tháng 2/2021 mới đưa vào vận hành.
  • Dự án Cổng Dịch vụ công Quốc gia (Việt Nam): Kế hoạch vận hành tháng 9/2016 nhưng đến tháng 12/2019 mới chính thức khai trương.
  • Dự án Universal Credit (Vương quốc Anh): Triển khai từ năm 2013, bị trượt tiến độ liên tục và dự kiến thời hạn bàn giao cuối cùng dời đến năm 2021.
  • Dự án Hệ thống tiền lương y tế Queensland (Queensland Health Payroll System, Úc): Triển khai năm 2013, chi phí thực tế vượt hơn 200 lần ngân sách ban đầu và đòi hỏi nhiều thao tác vận hành thủ công ngoài kế hoạch.
  • Dự án e-Borders (Vương quốc Anh): Bắt đầu năm 2007 nhằm quản lý dữ liệu hành khách, gặp hàng loạt sự cố trì hoãn và bị hủy bỏ vào năm 2014.

Khoảng trống nghiên cứu chính được xác định là: Các phương pháp định lượng rủi ro hiện có trong quản lý dự án chủ yếu dựa trên ma trận Xác suất - Tác động (Probability-Impact - PI) hoặc mô phỏng Monte Carlo (MCS). Tuy nhiên, các kỹ thuật này bộc lộ nhược điểm lớn khi áp dụng vào phần mềm: ma trận PI thiếu khả năng diễn giải toán học rõ ràng; MCS giả định tính độc lập thống kê giữa các công việc (bỏ qua quan hệ phụ thuộc lẫn nhau) và không thể mô hình hóa được cấu trúc nhân quả (causal structure) cũng như các phản ứng can thiệp của nhà quản lý. Mạng Bayesian (Bayesian Networks - BN) là công cụ toán học và đồ thị có khả năng biểu diễn quan hệ nhân quả và phụ thuộc có điều kiện, nhưng hiếm khi được nghiên cứu và ứng dụng một cách hệ thống trong lập lịch dự án phần mềm.

Mục tiêu và câu hỏi nghiên cứu

Luận án tập trung giải quyết 3 câu hỏi nghiên cứu:

  1. Làm thế nào để lập lịch dự án phần mềm tốt hơn? (How to schedule software projects better?)
  2. Làm thế nào để quản trị rủi ro trong dự án phần mềm tốt hơn? (How to better manage risks in software projects?)
  3. Làm thế nào để phân tích rủi ro một cách định lượng? (How to quantitatively analyse risks?)

Trên cơ sở đó, luận án xác định 2 mục tiêu nghiên cứu cụ thể:

  1. Tìm ra phương pháp định lượng để đánh giá và phân tích tốt hơn các rủi ro trong lập lịch dự án phần mềm thông qua việc mô hình hóa các thuộc tính rủi ro đặc thù.
  2. Tìm ra phương pháp xác suất nhằm cải tiến các kỹ thuật lập lịch dự án phần mềm phổ biến, bao gồm cả kỹ thuật lập lịch truyền thống (CPM, PERT) và kỹ thuật lập lịch linh hoạt (Agile iteration scheduling).

Giả thuyết nghiên cứu của luận án: Có thể sử dụng Mạng Bayesian để định lượng tính bất định trong lập lịch dự án phần mềm và nâng cao chất lượng đánh giá rủi ro dự án phần mềm.

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

  • Đối tượng nghiên cứu: Quản trị rủi ro tiến độ, các yếu tố rủi ro và các kỹ thuật lập lịch trong dự án phát triển phần mềm.
  • Phạm vi nghiên cứu:
    • Tập trung vào khía cạnh quản trị rủi ro thời gian/tiến độ (Schedule/Time management) trong giai đoạn lập kế hoạch và lập lịch dự án phần mềm.
    • Về phương pháp phát triển: Nghiên cứu cả mô hình phát triển phần mềm truyền thống (Thác nước/Waterfall) và mô hình linh hoạt (Agile).
    • Về kỹ thuật lập lịch: Tập trung vào Phương pháp Đường găng (Critical Path Method - CPM), Kỹ thuật Đánh giá và Soát xét Chương trình (Program Evaluation and Review Technique - PERT) và Lập lịch vòng lặp Agile (Agile Iteration Scheduling).
    • Dữ liệu thực nghiệm: Sử dụng tập dữ liệu chuẩn từ thư viện PSPLIB (Project Scheduling Problem Library), dữ liệu khảo sát từ các công trình nghiên cứu trước và dữ liệu dự án thực tế cùng ý kiến chuyên gia từ các doanh nghiệp CNTT tại Việt Nam (FPT/FSOFT, Tinh Vân, Evizi, FIS).

Tổng quan tài liệu và vị trí của luận án

Các hướng nghiên cứu trước

Luận án đã tổng hợp và phân tích các công trình nghiên cứu liên quan theo các nhóm chuyên đề:

  1. Nghiên cứu về bất định và kỹ thuật lập lịch truyền thống:

    • Malcolm et al. (cuối thập niên 1950): Khởi xướng việc đưa tính bất định vào lập lịch dự án thông qua kỹ thuật PERT với 3 giá trị ước lượng thời gian và phân phối Beta.
    • Pollack-Johnson và Liberatore (2003): Khảo sát cho thấy gần 70% nhà quản lý dự án sử dụng CPM, và khoảng 17% sử dụng phân tích xác suất hoặc mô phỏng trong các phần mềm quản lý dự án.
    • van Dorp và Duffey (1999): Chứng minh rằng việc bỏ qua sự phụ thuộc giữa các rủi ro trong mô phỏng Monte Carlo dẫn đến việc đánh giá thấp tổng mức độ bất định của tiến độ dự án.
    • Williams (1999, 2003): Chỉ ra các điểm yếu của mô phỏng Monte Carlo trong việc nắm bắt chuỗi nguyên nhân - kết quả và hành vi can thiệp điều chỉnh của người quản lý khi dự án chậm trễ.
    • Bonnal et al., cùng các nghiên cứu về Fuzzy logic trong lập lịch (những năm 1990 - 2000): Sử dụng tập mờ để biểu diễn độ mờ thay vì tính bất định ngẫu nhiên, nhưng khó triển khai rộng rãi do thiếu tiếp cận tính toán chuẩn hóa.
  2. Nghiên cứu ứng dụng Mạng Bayesian trong dự án tổng quát và xây dựng:

    • McCabe (2003), Nasir et al. (2003): Ứng dụng BN trong xây dựng công trình, phân loại 10 nhóm rủi ro với 70 biến rủi ro trên 8 nhóm công việc, sau đó chuyển biên độ thời gian sang MCS.
    • Khodakarami (2009), Khodakarami et al. (2007): Ứng dụng BN vào lập lịch dự án nói chung qua hai ca nghiên cứu (thiết kế máy bay và xây dựng trung tâm thể hình), mở rộng CPM để xử lý bất định và quan hệ nhân quả.
    • Ali et al.: Kết hợp MCS và BN để đánh giá tác động tổng hợp của rủi ro lên thời gian hoàn thành dự án xây dựng.
    • Lee và Shin: Đề xuất mô hình BN cho quản trị rủi ro đóng tàu với 26 yếu tố rủi ro.
    • Sharma và Chanda: Xây dựng mô hình BN dự đoán mức độ thành công của dự án R&D dựa trên các yếu tố rủi ro.
    • Fenton và Neil: Phát triển công cụ xác suất AgenaRisk dựa trên BN phục vụ đánh giá rủi ro hệ thống.
    • Chang, Yu và Cheng: Đề xuất phương pháp lập lịch đường găng dựa trên rủi ro (Risk-based Critical Path Scheduling Method) trong xây dựng dựa trên 2 nhóm rủi ro và 7 cấp độ rủi ro.
  3. Nghiên cứu về yếu tố rủi ro trong dự án phần mềm:

    • Hui và Liu (2000): Tổng hợp 24 yếu tố rủi ro phần mềm (từ nghiên cứu tại Đại học Bang Arizona, ASU) và khảo sát 29 chuyên gia IT để xác định xác suất và trọng số tác động.
    • Kumar và Yadav: Đề xuất danh mục 27 yếu tố rủi ro và tiếp cận xác suất đánh giá quan hệ nhân quả cho toàn bộ dự án phần mềm.
    • Hu et al.: Nghiên cứu khung phân tích quan hệ nhân quả giữa các yếu tố rủi ro và kết quả dự án phần mềm bằng BN.
    • Anthony et al.: Đề xuất mô hình đánh giá rủi ro phần mềm chia thành 3 nhóm: vận hành, kỹ thuật và chiến lược.
    • Rai et al.: Xác định 43 chỉ số rủi ro trong phát triển phần mềm Agile.
    • Akos Szoke (2014): Luận án tiến sĩ đề xuất thuật toán tối ưu hóa lập lịch cho dự án phần mềm Agile.
    • Zhigang: Đề xuất mô hình PERTBN (PERT Bayesian Network) tính toán xác suất có điều kiện cho các dạng thủ tục chuỗi đơn, tập trung và phân tán, nhưng chưa đi sâu vào các yếu tố rủi ro phần mềm đặc thù.

Khoảng trống luận án lựa chọn giải quyết

Các nghiên cứu hiện tại chủ yếu tập trung vào đánh giá rủi ro chung cho toàn bộ vòng đời dự án phần mềm hoặc áp dụng BN cho các lĩnh vực kỹ thuật khác (xây dựng, đóng tàu, R&D). Chưa có công trình nào tích hợp trực tiếp Mạng Bayesian cùng các mô hình yếu tố rủi ro định lượng vào các kỹ thuật lập lịch cốt lõi (CPM, PERT, Agile iteration scheduling) trong giai đoạn lập kế hoạch - khâu mang tính quyết định đến sự thành bại của dự án phần mềm.


Cơ sở lý thuyết và phương pháp nghiên cứu

Cơ sở lý thuyết và khung phân tích

Luận án xây dựng trên nền tảng các lý thuyết và khung tiêu chuẩn quốc tế:

  1. Khung quản lý dự án và quản trị rủi ro: PMBOK Guide (Project Management Institute - PMI) với 5 nhóm quy trình (Khởi tạo, Lập kế hoạch, Thực thi, Giám sát & Kiểm soát, Đóng dự án); các quy trình chuẩn PRMP, PRAM, RAMP gồm 3 giai đoạn: Nhận dạng rủi ro (Risk Identification), Phân tích rủi ro (Risk Analysis) và Ứng phó rủi ro (Risk Response với 4 chiến lược: Né tránh - Avoid, Chuyển giao - Transfer, Giảm thiểu - Mitigate, Chấp nhận - Accept).
  2. Lý thuyết rủi ro nội sinh (Internally Generated Risk - IGR): Các rủi ro phát sinh từ bên trong tổ chức, quy trình, văn hóa và hành vi, có tính chất phổ biến, tác động liên đới nhiều hoạt động nhưng khó phát hiện trong sổ đăng ký rủi ro (Risk Register) truyền thống.
  3. Kỹ thuật lập lịch truyền thống:
    • Phương pháp Đường găng (CPM): Mô hình đơn định (deterministic) dựa trên các tham số thời gian bắt đầu sớm (ES), kết thúc sớm (EF), bắt đầu muộn (LS), kết thúc muộn (LF) và độ trễ toàn phần (Total Float - TF = 0 xác định công việc găng).
    • Kỹ thuật Đánh giá và Soát xét Chương trình (PERT): Mô hình bán xác suất dựa trên 3 ước lượng thời gian (Lạc quan - $a$, Khả dĩ nhất - $m$, Bi quan - $b$) để tính thời gian kỳ vọng $\mu = \frac{a + 4m + b}{6}$ và độ lệch chuẩn $\sigma = \frac{b - a}{6}$.
  4. Lập lịch trong phát triển phần mềm linh hoạt (Agile Iteration Scheduling): Phân rã yêu cầu thành các tác vụ kỹ thuật (technical tasks/Sprint backlog items) và gán cho các lập trình viên dựa trên ước lượng nỗ lực (giờ công), quan hệ phụ thuộc và ràng buộc thời gian.
  5. Lý thuyết Mạng Bayesian (BN): Đồ thị có hướng không chu trình (Directed Acyclic Graph - DAG) kết hợp Bảng xác suất nút (Node Probability Table - NPT / Conditional Probability Table - CPT).
    • Định lý Bayes: $$P(R|S) = \frac{P(R, S)}{P(S)} = \frac{P(S|R) \cdot P(R)}{P(S)}$$
    • Quy tắc nhân xác suất và Quy tắc chuỗi (Chain Rule) tính phân phối xác suất đồng thời cho $n$ biến: $$P(A_1, A_2, \dots, A_n) = \prod_{i=1}^{n} P(A_i | Parents(A_i))$$
    • Khả năng suy diễn hai chiều: Suy diễn xuôi (từ nguyên nhân đến kết quả - dự báo) và suy diễn ngược (từ kết quả đến nguyên nhân - chẩn đoán, cập nhật niềm tin hậu nghiệm).
Tiêu chí Mô hình Thác nước (Waterfall) Mô hình Linh hoạt (Agile)
Sản phẩm / Phạm vi Sản phẩm thường cồng kềnh, dễ thiếu tính năng (do từ chối thay đổi hoặc cắt giảm để kịp hạn). Sản phẩm tối ưu theo mức độ ưu tiên của khách hàng, tích hợp liên tục phản hồi thực tế.
Tiến độ / Thời gian Thường xuyên trễ hạn; hiếm khi bàn giao sớm. Xác suất cao đáp ứng cam kết thời gian cố định; có thể bàn giao sớm với giá trị cao nhất.
Chất lượng Kiểm thử ở giai đoạn sau, chi phí cao và kéo dài. Chất lượng được tích hợp sẵn trong từng vòng lặp.
Tạo giá trị / Doanh thu Tạo giá trị bị trì hoãn cho đến khi triển khai xong toàn bộ tính năng. Tạo giá trị sớm ngay khi các tính năng ưu tiên cao nhất được bàn giao; ROI cao hơn.
Quan hệ với khách hàng Dựa trên hợp đồng mang tính pháp lý. Hợp tác thường xuyên, trực tiếp.
Ký hiệu Tên gọi Công thức xác định Ý nghĩa
$a_j$ Công việc $j$ - Tác vụ cụ thể trong dự án.
$D_j$ Thời lượng của $a_j$ - Thời gian thực hiện công việc $j$.
$ES_j$ Bắt đầu sớm nhất $ES_j = \max [ES_i + D_i]$ $i$ là các công việc tiên quyết (predecessor).
$EF_j$ Kết thúc sớm nhất $EF_j = ES_j + D_j$ Thời điểm sớm nhất có thể hoàn thành $a_j$.
$LF_j$ Kết thúc muộn nhất $LF_j = \min [LF_k - D_k]$ $k$ là các công việc kế tiếp (successor).
$LS_j$ Bắt đầu muộn nhất $LS_j = LF_j - D_j$ Thời điểm muộn nhất phải bắt đầu $a_j$.
$TF_j$ Độ trễ toàn phần $TF_j = LS_j - ES_j = LF_j - EF_j$ Khoảng thời gian công việc có thể kéo dài mà không làm chậm toàn bộ dự án ($TF=0$: công việc găng).

Phương pháp nghiên cứu thực tế

Luận án áp dụng phương pháp nghiên cứu hỗn hợp kết hợp phân tích định tính và mô hình hóa định lượng:

  • Định tính: Khảo sát tổng quan tài liệu học thuật về quản trị rủi ro và lập lịch; phỏng vấn, thu thập ý kiến chuyên gia đầu ngành trong lĩnh vực phần mềm để xác định cấu trúc phụ thuộc và các yếu tố rủi ro.
  • Định lượng: Mô hình hóa xác suất bằng mạng Bayesian; xây dựng thuật toán tính toán tác động rủi ro BRI (Bayes Risk-Impact); phát triển các công cụ phần mềm chuyên dụng (CKDY, RBCPM, RBPERT, BAIS); thực nghiệm trên các bộ dữ liệu chuẩn và dữ liệu dự án thực tế.

Nguồn tư liệu và dữ liệu

  • Dữ liệu chuyên gia: Khảo sát từ 29 chuyên gia CNTT (có 5 đến 25 năm kinh nghiệm) từ nghiên cứu của Hui và Liu; ý kiến đánh giá chuyên gia từ các nhà quản lý doanh nghiệp phần mềm tại Việt Nam: TS. Nguyễn Thành Nam (nguyên CEO FPT, nguyên Chủ tịch FSOFT), ông Lưu Quốc Tuấn (Công ty CP Tinh Vân Outsourcing), ông Ngô Quang Vinh (Công ty Evizi), ông Nguyễn Huy Bình (Công ty FIS).
  • Dữ liệu thực nghiệm chuẩn: Tập dữ liệu kiểm thử chuẩn PSPLIB (như các tệp bài toán j30, j301_1) cho bài toán lập lịch ràng buộc tài nguyên.
  • Dữ liệu thực tế: Các mẫu dữ liệu dự án phần mềm thực tế tại các công ty CNTT Việt Nam.

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

Overview of software project scheduling and risk management (Chương 1)

Chương 1 hệ thống hóa các khái niệm nền tảng về quản trị dự án phần mềm, sự khác biệt bản chất giữa dự án phần mềm và các dự án kỹ thuật truyền thống (tính phi vật thể, quy trình không chuẩn hóa, tính đơn chiếc - one-off). Chương này phân tích chi tiết các kỹ thuật lập lịch truyền thống (CPM, PERT), kỹ thuật mô phỏng (Monte Carlo Simulation - MCS), tiếp cận tập mờ (Fuzzy logic) và lập lịch trong mô hình phát triển phần mềm linh hoạt (Agile iteration scheduling).

Nội dung chương chỉ ra các hạn chế cố hữu của các phương pháp lập lịch truyền thống khi xử lý tính bất định: CPM hoàn toàn đơn định; PERT chỉ xét biến thiên cục bộ trên từng công việc đơn lẻ; MCS bỏ qua cấu trúc nhân quả và sự phụ thuộc qua lại giữa các công việc chịu chung yếu tố rủi ro; Fuzzy logic khó áp dụng thực tế do thiếu cơ chế tính toán thống nhất.

Tiếp đó, chương giới thiệu lý thuyết Mạng Bayesian, nguyên lý suy diễn Bayes và các ưu điểm nổi bật của BN trong việc mô hình hóa định lượng rủi ro: khả năng chuẩn hóa việc sử dụng thông tin chủ quan của chuyên gia, tường minh hóa tính bất định qua đồ thị DAG, phân tích độ nhạy phức tạp và khả năng dự báo ngay cả khi tập dữ liệu bị khuyết thiếu.

Common risk factors and experiments on Bayesian Networks and software project scheduling (Chương 2)

Chương 2 tập trung xây dựng mô hình toán học và công cụ định lượng rủi ro, phân tích các yếu tố rủi ro phổ biến ảnh hưởng đến lập lịch phần mềm.

Tác giả kế thừa danh mục 24 yếu tố rủi ro phần mềm từ nghiên cứu của Đại học Bang Arizona và khảo sát của Hui & Liu, phân chia thành 8 nhóm vấn đề:

STT Nhóm vấn đề (Group of Issues) Yếu tố rủi ro (Risk factor) Xác suất xuất hiện ($P$)
1 Resources (Tài nguyên) Staff experience shortage (Thiếu nhân sự có kinh nghiệm) 0,30
2 Resources Reliance on few key person (Phụ thuộc vào một vài nhân sự chủ chốt) 0,75
3 Resources Schedule pressure (Áp lực tiến độ) 0,70
4 Personnel (Nhân sự) Low productivity (Năng suất thấp) 0,22
5 Personnel Lack of staff commitment (Thiếu cam kết của nhân viên) 0,20
6 Customer (Khách hàng) Lack of client support (Thiếu sự hỗ trợ từ khách hàng) 0,35
7 Customer Lack of contact person competence (Thiếu năng lực người đầu mối liên hệ) 0,15
8 Research data (Dữ liệu nghiên cứu) Lack of quantitative historical data (Thiếu dữ liệu lịch sử định lượng) 0,50
9 Research data Inaccurate cost estimating (Ước tính chi phí không chính xác) 0,50
10 System (Hệ thống) Large and complex external interface (Giao diện ngoài lớn và phức tạp) 0,40
11 System Large and complex project (Dự án lớn và phức tạp) 0,45
12 System Unnecessary features (Các tính năng không cần thiết) 0,20
13 System Creeping user requirement (Yêu cầu người dùng thay đổi/phát sinh liên tục) 0,75
14 System Unreliable subproject delivery (Bàn giao dự án con không đáng tin cậy) 0,45
15 Management (Quản lý) Incapable project management (Năng lực quản lý dự án yếu kém) 0,58
16 Management Lack of senior management commitment (Thiếu cam kết từ lãnh đạo cấp cao) 0,50
17 Management Lack of organization maturity (Tổ chức thiếu độ trưởng thành) 0,25
18 Technology (Công nghệ) Immature technology (Công nghệ chưa hoàn thiện/chưa chín muồi) 0,46
19 Technology Inadequate configuration control (Kiểm soát cấu hình không đầy đủ) 0,45
20 Technology Excessive paperwork (Thủ tục giấy tờ quá mức) 0,30
21 Technology Inaccurate metrics (Số liệu đo lường không chính xác) 0,50
22 Technology Excessive reliance on a single process (Quá phụ thuộc vào một quy trình đơn lẻ) 0,50
23 Experience (Kinh nghiệm) Lack of experience with project environment (Thiếu kinh nghiệm về môi trường dự án) 0,625
24 Experience Lack of experience with project software (Thiếu kinh nghiệm về phần mềm dự án) 0,45

Từ 24 yếu tố trên, tác giả xây dựng các mạng Bayesian con (sub-BNs) và mạng tổng thể, đồng thời gán 3 cấp độ trọng số tác động (+ tương ứng cấp 1, ++ tương ứng cấp 2, +++ tương ứng cấp 3). Tác giả đề xuất thuật toán BRI (Bayes Risk-Impact) để tính toán tác động của rủi ro lên tiến độ dự án.

Luận án đã tự phát triển công cụ phần mềm xác suất CKDY để thực nghiệm phân tích rủi ro. Kết quả tính toán từ CKDY được đối sánh với phần mềm chuẩn MSBNx (Microsoft Bayesian Network) trên các bộ dữ liệu thử nghiệm, khẳng định tính chính xác và độ tin cậy của thuật toán đề xuất.

Tiếp đó, qua các thực nghiệm và phân tích xếp hạng mức độ ảnh hưởng, luận án tiến hành rút gọn tập rủi ro: ban đầu khảo sát nhóm 5 yếu tố rủi ro then chốt, sau đó xây dựng hoàn chỉnh hai danh mục chuẩn gồm 19 yếu tố rủi ro phổ biến trong dự án phần mềm truyền thống và 19 yếu tố rủi ro phổ biến trong dự án phần mềm Agile.

Incorporation of Bayesian Networks into software project scheduling techniques (Chương 3)

Chương 3 trình bày các đóng góp cốt lõi của luận án thông qua việc tích hợp Mạng Bayesian vào các kỹ thuật lập lịch dự án phần mềm:

  1. Tích hợp BN vào Lập lịch vòng lặp Agile (Optimized Agile iteration scheduling):

    • Mô hình hóa bài toán lập lịch lặp trong Agile (Agile Iteration Scheduling Problem - AISP) dưới điều kiện bất định.
    • Xây dựng mô hình và công cụ phần mềm BAIS (Bayesian Agile Iteration Scheduling).
    • Thử nghiệm trên các tập dữ liệu mẫu và các chiến lược lập lịch: Thời gian thực hiện ngắn nhất (Shortest Processing Time - SPT), Thời gian thực hiện dài nhất (Longest Processing Time - LPT), Gán ưu tiên (Assigned First - AF).
    • Kết quả cho phép cung cấp biểu đồ tiến độ Gantt và tính toán trực tiếp xác suất hoàn thành vòng lặp đúng hạn theo từng giai đoạn.
  2. Tích hợp BN vào Phương pháp Đường găng (Incorporation of Bayesian Networks into CPM):

    • Đề xuất mô hình và phương pháp RBCPM (Risk Bayesian Critical Path Method).
    • Tích hợp mạng Bayesian của 19 yếu tố rủi ro vào từng nút công việc trong mạng CPM.
    • Phát triển công cụ phần mềm RBCPM, cho phép tính toán các tham số thời gian (ES, EF, LS, LF) dưới dạng phân phối xác suất thay vì các giá trị cố định đơn định, xác định đường găng động dựa trên rủi ro.
  3. Tích hợp BN vào Kỹ thuật Đánh giá và Soát xét Chương trình (Incorporation of Bayesian Networks into PERT):

    • Đề xuất mô hình cải tiến RBPERT (Risk Bayesian PERT) và phát triển công cụ phần mềm RBPERT.
    • Thay thế việc ước lượng 3 giá trị thời gian cảm tính bằng việc tính toán phân phối thời gian thực hiện công việc thông qua mạng tích hợp rủi ro.
    • Thử nghiệm với các tập dữ liệu dự án mẫu và tập dữ liệu chuẩn PSPLIB (như bài toán j30), phân tích phân phối tổng thời lượng của các công việc và toàn bộ dự án.

Conclusion and future research (Chương 4)

Chương 4 tổng kết các kết quả chính đã đạt được trong luận án, đối chiếu với mục tiêu nghiên cứu ban đầu, chỉ rõ các hạn chế tồn tại về mặt phạm vi và dữ liệu, đồng thời phác thảo các hướng mở rộng nghiên cứu trong tương lai.


Kết quả và những đóng góp mới

Đóng góp về mặt khoa học và lý luận

  1. Đề xuất thuật toán BRI (Bayes Risk-Impact) cho phép định lượng và đánh giá tác động lan truyền của các yếu tố rủi ro lên tiến độ dự án phần mềm dựa trên suy diễn mạng Bayesian.
  2. Xác định và chuẩn hóa danh mục 19 yếu tố rủi ro phổ biến cho dự án phần mềm truyền thống và 19 yếu tố rủi ro phổ biến cho dự án phần mềm Agile, xây dựng cấu trúc mạng quan hệ nhân quả (DAG) và bảng xác suất điều kiện tương ứng.
  3. Đề xuất phương pháp và mô hình tích hợp Mạng Bayesian vào các kỹ thuật lập lịch dự án phần mềm truyền thống: mô hình RBCPM (kết hợp BN với CPM) và mô hình RBPERT (kết hợp BN với PERT), khắc phục giả định đơn định của CPM và giả định độc lập thống kê của PERT/MCS.
  4. Xây dựng mô hình tối ưu hóa lập lịch vòng lặp Agile dựa trên Mạng Bayesian (mô hình BAIS), cho phép ước tính tiến độ khả thi kèm theo xác suất hoàn thành vòng lặp đúng thời hạn.

Đóng góp về mặt thực tiễn và giải pháp công nghệ

  1. Phát triển hệ thống 4 công cụ phần mềm thực nghiệm:
    • Công cụ CKDY: Phân tích và đánh giá tác động rủi ro dựa trên thuật toán BRI (đã được kiểm chứng độ chính xác tương đương phần mềm chuẩn MSBNx).
    • Công cụ RBCPM: Lập lịch đường găng tích hợp rủi ro Bayesian.
    • Công cụ RBPERT: Lập lịch PERT tích hợp phân phối rủi ro Bayesian.
    • Công cụ BAIS: Hỗ trợ lập lịch và tối ưu hóa phân bổ công việc trong các vòng lặp phát triển Agile.
  2. Cung cấp quy trình và công cụ định lượng hỗ trợ các nhà quản lý dự án phần mềm (Project Managers), Scrum Master trong việc lập kế hoạch tiến độ thực tế hơn, theo dõi biến động rủi ro, dự báo khả năng hoàn thành dự án và ra quyết định can thiệp kịp thời.

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

Hạn chế của luận án

  • Việc xác định xác suất tiên nghiệm (prior probability) và thiết lập bảng xác suất điều kiện (CPT/NPT) ban đầu của một số nút trong mạng Bayesian vẫn phụ thuộc một phần vào ý kiến chuyên gia và dữ liệu khảo sát chủ quan.
  • Phạm vi nghiên cứu chủ yếu tập trung vào ràng buộc thời gian và lập lịch (Schedule/Time), các yếu tố liên quan đến chi phí (Cost) và chất lượng (Quality) chỉ được xem xét gián tiếp thông qua sự tương tác với tiến độ.

Hướng nghiên cứu tiếp theo

  • Mở rộng mô hình để tích hợp đồng thời cả ba chiều ràng buộc của dự án phần mềm (Thời gian, Chi phí, Chất lượng) trong một mạng Bayesian thống nhất.
  • Ứng dụng các kỹ thuật học máy (Machine Learning) để tự động học cấu trúc mạng và tham số xác suất (Parameter Learning / Structure Learning) từ kho dữ liệu lịch sử dự án phần mềm quy mô lớn, giảm thiểu sự phụ thuộc vào đánh giá chuyên gia.
  • Nghiên cứu áp dụng mô hình cho các quy trình phát triển phần mềm kết hợp (Hybrid Agile-Waterfall) trong thực tế doanh nghiệp.

Giá trị tham khảo

  • Nghiên cứu sinh, học viên cao học và nhà nghiên cứu: Thuộc chuyên ngành Kỹ thuật phần mềm (mã số 9480103), Hệ thống thông tin và Quản lý dự án CNTT; có thể tham khảo cơ sở lý thuyết về Mạng Bayesian, thuật toán BRI và phương pháp tích hợp mạng xác suất vào các thuật toán lập lịch cổ điển.
  • Giảng viên đại học: Sử dụng làm tài liệu tham khảo chuyên sâu cho các học phần Quản trị dự án phần mềm, Đảm bảo chất lượng phần mềm và Các phương pháp mô hình hóa bất định trong kỹ thuật phần mềm.
  • Nhà quản lý dự án (Project Managers), Kỹ sư trưởng, Scrum Master: Tham khảo danh mục 19 yếu tố rủi ro đặc thù, nguyên lý hoạt động của các công cụ RBCPM, RBPERT, BAIS để ứng dụng vào việc lập kế hoạch sprint, kiểm soát đường găng và dự báo xác suất bàn giao sản phẩm đúng hạn.

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

1. Rủi ro trong dự án phần mềm được định nghĩa như thế nào trong luận án?

Trong luận án, rủi ro được định nghĩa là các sự kiện hoặc điều kiện không chắc chắn mà nếu xảy ra, chúng sẽ gây ra tác động tiêu cực đến một hoặc nhiều kết quả của dự án phần mềm (bao gồm chi phí, thời gian, chất lượng).

2. Thuật toán BRI (Bayes Risk-Impact) và công cụ CKDY được xây dựng nhằm mục đích gì?

Thuật toán BRI được tác giả đề xuất nhằm tính toán tác động lan truyền của các yếu tố rủi ro dựa trên cấu trúc suy diễn của Mạng Bayesian kết hợp với các cấp độ trọng số tác động (+, ++, +++). Công cụ CKDY là phần mềm do tác giả tự xây dựng để cài đặt thuật toán BRI và thực nghiệm phân tích rủi ro lập lịch, có kết quả tính toán xác suất đã được kiểm chứng tương thích chính xác với công cụ chuẩn MSBNx của Microsoft.

3. Phương pháp RBCPM và RBPERT khắc phục những nhược điểm nào của CPM và PERT truyền thống?

CPM truyền thống là mô hình đơn định, gán một giá trị thời lượng cố định cho mỗi công việc và bỏ qua rủi ro; còn PERT truyền thống chỉ tính biến thiên thời gian dựa trên 3 ước lượng cảm tính và giả định các công việc độc lập thống kê. RBCPM và RBPERT tích hợp Mạng Bayesian và mô hình 19 yếu tố rủi ro vào từng nút công việc, cho phép mô hình hóa quan hệ phụ thuộc nhân quả giữa các rủi ro dùng chung và biểu diễn thời lượng công việc dưới dạng phân phối xác suất động.

4. Mô hình BAIS hỗ trợ lập lịch trong dự án Agile như thế nào?

Mô hình BAIS (Bayesian Agile Iteration Scheduling) giải quyết bài toán lập lịch vòng lặp Agile (AISP) bằng cách tích hợp Mạng Bayesian vào quá trình phân bổ tác vụ kỹ thuật cho lập trình viên. Công cụ BAIS cho phép trực quan hóa tiến độ bằng biểu đồ Gantt, đồng thời tính toán cụ thể xác suất hoàn thành vòng lặp đúng hạn dưới tác động của các yếu tố rủi ro theo từng chiến lược lập lịch (như SPT, LPT, AF).


Kết luận

Luận án tiến sĩ của tác giả Nguyễn Ngọc Tuấn đã giải quyết bài toán định lượng rủi ro trong lập lịch dự án phần mềm bằng cách ứng dụng lý thuyết Mạng Bayesian. Tác giả đã đề xuất thuật toán BRI, xác lập danh mục 19 yếu tố rủi ro phổ biến cho cả hai mô hình phát triển phần mềm truyền thống và Agile, đồng thời xây dựng thành công các mô hình lập lịch tích hợp xác suất gồm RBCPM, RBPERT và BAIS. Hệ thống công cụ phần mềm thực nghiệm tự phát triển (CKDY, RBCPM, RBPERT, BAIS) đã chứng minh tính tin cậy toán học và khả năng ứng dụng thực tế, cung cấp giải pháp khoa học hỗ trợ các nhà quản lý dự án kiểm soát tiến độ và nâng cao xác suất thành công của các dự án phần mềm.