Phương pháp xác suất cải tiến sử dụng mạng Bayes đánh giá rủi ro trong lập lịch dự án phần mềm

Tạp chí Khoa học và Kỹ thuật - Học viện KTQS - Số 184 (06-2017)  
PHƯƠNG PHÁP XÁC SUẤT CẢI TIẾN  
SỬ DỤNG MẠNG BAYES ĐÁNH GIÁ RỦI RO  
TRONG LẬP LỊCH DỰ ÁN PHẦN MỀM  
Nguyễn Ngọc Tuấn1, Trần Trung Hiếu1, Huỳnh Quyết Thắng1  
Tóm tắt  
Quản trị rủi ro dự án phần mềm đóng một vai trò quan trọng trong thành công của dự  
án phần mềm. Có nhiều các yếu tố rủi ro (những sự kiện không lường trước có thể gây hại  
dự án) tác động vào toàn bộ quy trình phát triển phần mềm. Trong thực tế, mọi pha của vòng  
đời phát triển phần mềm là nguồn rủi ro tiềm tàng vì nó bao gồm phần cứng, phần mềm,  
công nghệ, con người, chi phí và lịch trình. Để dự án phần mềm thành công thì cần mô hình  
hóa và đánh giá rủi ro ngay từ quá trình lập kế hoạch dự án. Các kỹ thuật lập lịch phổ biến  
đều dựa vào giả thuyết là mỗi công việc, mỗi giai đoạn của dự án được thực hiện đúng như  
dự kiến – điều hầu như không xảy ra trong dự án thực. Tìm ra mối liên hệ giữa các yếu tố  
rủi ro và kết quả thực hiện dự án là mối quan tâm chính của các nghiên cứu về phân tích  
rủi ro phần mềm hiện nay. Trong bài báo này, chúng tôi đề xuất bộ chỉ số nguy cơ rủi ro  
trong lập lịch dự án phần mềm đồng thời xem xét xây dựng và thử nghiệm công cụ xác suất  
CKDY để đánh giá các rủi ro trong quá trình lập lịch dự án phần mềm. Mô hình đánh giá  
sử dụng Mạng Bayes, tập trung vào các chỉ số rủi ro tác động nhiều nhất đến quá trình lập  
lịch dự án.  
Software Risk Management has become a vital part of Software Project Management  
since software development involves uncertainty (or risk factors that might have bad impacts  
on the project). In fact, all the phases of the software development life cycle (SDLC) are  
potential sources of uncertainty since they have to deal with hardware, software, technology,  
people, cost, and processes. To lead a software project to success, it is required to model and  
assess uncertainty since the early phases of the project. Current state-of-the-art scheduling  
techniques based on the assumption that every task, activity or phase of the project is carried  
out exactly as it is planned, which almost never happens in real-life projects. Recent researches  
on risk management focus on the relationships between uncertainty and the outcomes of a  
project. This research examines a model and a probabilistic tool CKDY using Bayesian Belief  
Networks to evaluate risk factors in software project scheduling.  
Từ khóa  
Mạng Bayes, BBN, quản trị rủi ro dự án phần mềm, các yếu tố rủi ro dự án phần mềm,  
quản trị dự án phần mềm, lập lịch dự án phần mềm.  
1. Giới thiệu chung  
1
Viện Công nghệ thông tin và Truyền thông, Đại học Bách Khoa Hà Nội  
47  
Chuyên san Công nghệ thông tin và Truyền thông - Số 10 (06-2017)  
UẢN trị rủi ro dự án phần mềm là một công việc rất quan trọng trong phát triển  
dự án phần mềm. Các nghiên cứu [1][2] chỉ ra rằng trong toàn ngành công nghiệp  
Q
phần mềm chỉ có 16.2% các dự án là đúng tiến độ và đúng dự toán, đến 52.7% phần  
mềm làm ra phải giảm số tính năng, 31.1% phải hủy trước khi hoàn thành và ít nhất  
53% các dự án phát triển phần mềm vượt ngân sách hoặc chậm thời hạn. Đối với các  
dự án được hoàn thành thì cũng chỉ có 61% các đặc tính và chức năng được thiết kế  
ban đầu [3].  
Lý do của hiện tượng số lượng lớn phần mềm có chất lượng kém và dự án thất bại  
đó là thiếu việc quản trị rủi ro dự án một cách đúng đắn. Các phương pháp phát triển  
phần mềm truyền thống – đặc trưng chung là có tính dự đoán (predictive) – xác định  
chính xác các tính năng cần xây dựng ngay từ đầu [4]. Nhưng môi trường và điều kiện  
luôn thay đổi, và có những sự kiện trong tương lai, bất định, có thể ảnh hưởng tiêu cực  
đến kết quả của dự án. Chính vì thế từ đầu những năm 2000, các phương pháp phát  
triển phần mềm linh hoạt (agile software development) như ASD, XP, FDD, Kanban,  
Scrum - với đặc trưng là tính thích ứng (adaptive) với thay đổi của thực tại - đã dần trở  
nên phổ biến [5]. Khi dự án có những thay đổi, thì đội dự án cũng thay đổi theo [6].  
Bản thân chính các phương pháp phát triển phần mềm linh hoạt cũng là những cách  
thức hạn chế rủi ro phát sinh trong dự án [6].  
Áp dụng quản trị rủi ro dự án phần mềm để đảm bảo dự án hiệu quả đã được sử  
dụng nhiều hơn. Boehm [1] đề xuất các nguyên tắc và thực hành của quản trị rủi ro  
dự án qua 6 giai đoạn là xác định rủi ro, phân tích, thiết lập ưu tiên, quản lý, xử lý  
rủi ro và giám sát rủi ro. Dedolph [2] nghiên cứu những thực tiễn quản trị rủi ro ở  
Lucent Technologies để chỉ ra tại sao quản trị rủi ro hay bị bỏ qua, và đưa ra các ví dụ  
về quản trị rủi ro thành công. Freimut và các cộng sự [7] nghiên cứu về việc thiết lập  
quản trị rủi ro dự án phần mềm trong toàn ngành phần mềm. Họ đề xuất phương pháp  
quản trị rủi ro hệ thống Riskit, và chỉ ra Riskit đem lại lợi ích với chi phí chấp nhận  
được. McConnell [8] chỉ ra rằng cơ hội thành công của dự án có thể tăng 50-70% nếu  
chỉ 5% ngân sách của toàn bộ dự án được chi cho quản trị rủi ro.  
Thông qua khảo sát các nghiên cứu có liên quan, chúng ta thấy nhiều nghiên cứu  
không áp dụng lý thuyết hay mô hình toán học nào trong việc đánh giá rủi ro và tính  
toán mức độ ảnh hưởng (hậu quả) của chúng (tức đánh giá định lượng). Những phương  
pháp này sử dụng “ý kiến chuyên gia” theo cách truyền thống [1][7][9] mà không có lý  
thuyết khoa học hay công nghệ nào bổ trợ, và do vậy không đáp ứng được môi trường  
phát triển phần mềm phức tạp hiện nay. Trong một số nghiên cứu khác, các tác giả sử  
dụng hướng tiếp cận khoa học hơn, sử dụng các mô hình toán học để quản lý rủi ro của  
các dự án phát triển phần mềm, qua đó làm tăng độ thành công và kết quả của dự án.  
Trong nhiều kỹ thuật mô hình hóa hiện có thì Mạng Bayes (Bayesian Belief Network  
– BBN) đã được cân nhắc sử dụng vì tính hiệu quả trong biểu diễn và định lượng các  
yếu tố bất định (có thể phát sinh rủi ro) [10][11][12][13][14][15].  
Lập lịch dự án là công việc rất khó bởi vì việc này khó tránh khỏi những rủi ro. Rủi  
ro trong lập lịch dự án thực tế phát sinh từ những đặc điểm tính độc nhất (chưa từng  
có kinh nghiệm tương tự trước đó), tính biến đổi (sự đánh đổi giữa những phép đo như  
48  
Tạp chí Khoa học và Kỹ thuật - Học viện KTQS - Số 184 (06-2017)  
thời gian, chi phí và chất lượng), và sự không rõ ràng (thiếu rõ ràng, thiếu dữ liệu, và  
thiếu cấu trúc và sai lệch trong dự đoán/ước lượng) [13][16]. Có nhiều kĩ thuật và công  
cụ khác nhau được phát triển để hỗ trợ cho việc lập lịch dự án tốt hơn, và những công  
cụ này được sử dụng bởi phần lớn các giám đốc dự án. Tuy nhiên việc lượng hóa các  
yếu tố rủi ro chưa được phổ biến trong các cách tiếp cận này. Trong lập lịch dự án, rủi  
ro hiển nhiên nhất là về ước lượng thời gian cho một công việc cụ thể của dự án. Khó  
khăn trong việc ước lượng này này xuất phát từ việc thiếu kiến thức, kinh nghiệm về  
những thứ có thể liên quan, hơn là từ cơ hội hay thách thức tiềm tàng từ hệ quả của  
việc xảy ra rủi ro đó.  
Hầu hết các nghiên cứu về phân tích rủi ro dự án phần mềm tập trung vào việc phát  
hiện ra mối liên hệ giữa các yếu tố rủi ro và kết quả của dự án mà thiếu phần định  
lượng và mối quan hệ nhân quả giữa các yếu tố rủi ro [17][18][19][20]. Một số nghiên  
cứu [21][22] quan tâm đến phần định lượng và mối quan hệ nhân quả giữa các yếu tố  
rủi ro, thì lại phân tích đánh giá rủi ro cho toàn bộ dự án mà thiếu phần tập trung vào  
việc mô hình hóa các yếu tố rủi ro ngay từ quá trình lập lịch dự án (thuộc giai đoạn  
lập kế hoạch dự án), vốn sẽ quyết định dự án thành công.  
Trong nghiên cứu này chúng tôi áp dụng mô hình đánh giá rủi ro dự án phần mềm  
sử dụng những chỉ số rủi ro được xếp hạng cao nhất trong quá trình lập lịch dự án.  
Mục tiêu của nghiên cứu là: 1) sử dụng Mạng Bayes xây dựng mối quan hệ nhân quả  
giữa các rủi ro được xếp hạng cao nhất; 2) xây dựng mô hình Mạng Bayes thử nghiệm  
để phân tích rủi ro dự án phần mềm, đặc biệt trong quá trình lập lịch dự án.  
Nội dung tiếp theo của bài báo được trình bày như sau: trong mục 2 giới thiệu về  
Mạng Bayes và trình bày chi tiết phương pháp đề xuất; trong mục 3 trình bày chi tiết  
xây dựng công cụ CKDY, xây dựng hai bộ dữ liệu thử nghiệm từ PSPLIB [27]; trong  
mục 4 trình bày kết quả thử nghiệm và đánh giá và cuối cùng mục 5 là kết luận.  
2. Mạng Bayes và phương pháp đề xuất  
2.1. Mạng Bayes  
Mạng Bayes (Bayesian Belief Network – BBN) thể hiện mô hình các mối quan hệ  
nhân quả của một hệ thống hoặc tập dữ liệu và cung cấp biểu diễn của các cấu trúc  
nhân quả này thông qua việc sử dụng các đồ thị có hướng không chu trình (directed  
acyclic graph - DAGs) với các nút và các cạnh. Các nút đại diện cho các biến ngẫu  
nhiên với các phân bố xác suất, trong khi cạnh đại diện cho mối quan hệ nhân quả có  
trọng số giữa các nút. Mỗi nút có một xác suất của một giá trị nhất định. Các cạnh có  
hướng từ nút cha đến nút con. Mỗi nút con có bảng xác suất điều kiện dựa trên các  
giá trị của nút cha. Mạng Bayes dựa trên định lý Bayes, được phát biểu dạng luật đơn  
giản như sau [21]:  
P(S/R)P(R)  
P(R/S) =  
(1)  
P(S)  
49  
Chuyên san Công nghệ thông tin và Truyền thông - Số 10 (06-2017)  
Hình 1. Ví dụ về Mạng Bayes.  
Luật Bayes ở công thức (1) được hiểu là quá trình cập nhật niềm tin (Belief – tức là  
xác suất tiếp theo của mỗi trạng thái có thể của một biến số, hay là các xác suất trạng  
thái sau khi cân nhắc tất cả các dữ kiện đã có) về giả thuyết R khi về sự kiện S xảy ra.  
Xác suất (niềm tin) P(R/S) được tính qua niềm tin trước đó P(R) với niềm tin về khả  
năng P(S/R) xảy ra S nếu R đúng (hoặc nếu xảy ra R).  
Mạng Bayes bao gồm 2 phần: 1) phần định tính: mô tả quan hệ giữa các biến bằng  
một DAG, và 2) phần định lượng: chỉ ra phân phối xác suất gắn với mỗi nút của đồ thị.  
Hình 1 là một ví dụ về Mạng Bayes cho việc đánh giá hiệu suất của một chiếc máy  
tính xách tay.  
Phần định tính là mối quan hệ nhân quả giữa 3 biến số ngẫu nhiên (các nút): thông  
số kỹ thuật (S), thương hiệu (B), hiệu suất (P). Quan hệ nhân quả như sau: S P, B  
P.  
Phần định lượng của Mạng Bayes là phân phối xác suất tương ứng với mỗi nút. Mỗi  
nút có một tập các giá trị có thể có, được gọi là không gian trạng thái của nó.  
Trong ví dụ này mỗi nút có hai trạng thái như: thông số kỹ thuật có hai trạng thái:  
“cao” và “thấp”; thương hiệu có hai trạng thái: “tốt” và “xấu” và hiệu suất có hai trạng  
thái: “cao” và “thấp”. Đối với mỗi nút, cần phải xác định bảng xác suất nút (NPT).  
Hình 1 cho thấy các bảng NPT của P (S), P (B) và P (P/S,B): P(S) nhận hai giá trị 0.8,  
0.2 tương ứng với trạng thái “cao”, “thấp”. P(B) nhận hai giá trị 0.7, 0.3 tương ứng  
với các trạng thái “tốt”, “xấu”. Bảng xác suất điều kiện NPT của P(P/S,B) gồm 8 giá  
trị xác suất tương ứng với các khả năng để hiệu suất của chiếc máy tính “cao” hoặc  
“thấp”, tương ứng khi thông số kỹ thuật “cao” hoặc “thấp”, khi thương hiệu “xấu” hoặc  
“tốt”. Ví dụ khi thông số kỹ thuật là “cao” và thương hiệu “tốt” thì xác suất để có hiệu  
suất cao là 0.8, và có hiệu suất thấp là 0.7.  
Mạng Bayes có nhiều ưu điểm như [21]: Nó là một hướng tiếp cận xác suất (% cơ  
50  
Tạp chí Khoa học và Kỹ thuật - Học viện KTQS - Số 184 (06-2017)  
hội); có thể được phát triển nhanh chóng với dữ liệu ít; xử lý được với các tình huống  
mà một số mục dữ liệu đầu vào bị thiếu hoặc không có; có thể được sử dụng để mô  
hình hóa các mối quan hệ nhân quả; dữ liệu chuyên gia có thể dễ dàng kết hợp với  
Mạng Bayes, và bất cứ khi nào có dữ liệu hay tri thức mới thì có thể dễ dàng cập nhật  
trong mạng.  
2.2. Phương pháp đề xuất  
Chúng tôi hiệu chỉnh phương pháp của các tác giả C. Kumar và D. K. Yadav [21]  
được phát biểu gồm 4 bước sau: (1) Lựa chọn các phép đo chỉ số rủi ro hàng đầu trong  
lập lịch dự án phát triển phần mềm; (2) Xây dựng các mối quan hệ nhân quả giữa các  
chỉ số rủi ro; (3) Xây dựng bảng xác suất nút (NPT) cho mỗi nút của mô hình; (4) Tính  
giá trị xác suất rủi ro cho dự án. Trong từng bước, chúng tôi lựa chọn các giải pháp  
phù hợp để xây dựng Mạng Bayes, mối quan hệ nhân quả và định lượng các yếu tố rủi  
ro.  
2.2.1. Lựa chọn các phép đo chỉ số rủi ro: Các chỉ số rủi ro trong lập lịch dự án phần  
mềm phụ thuộc vào rất nhiều yếu tố như quy mô dự án, kinh phí, nguồn nhân lực...  
Có nhiều nguồn thông tin hữu ích, cung cấp dữ liệu để xác định nguy cơ như các phân  
tích trước đây, dữ liệu lịch sử và bài học kinh nghiệm, các phân tích an toàn hệ thống  
và độ tin cậy, phỏng vấn chuyên gia, thăm dò dữ liệu, mô phỏng, kiểm tra dữ liệu, và  
các mô hình, cấu trúc phân chia công việc (WBS), phân tích các nguồn lực và xem xét  
tiến độ vv.  
Có nhiều mô hình dự đoán và đánh giá rủi ro phần mềm sử dụng các yếu tố rủi ro  
đã được đề xuất [22][23][24]. Hầu hết các mô hình này đánh giá tất cả các yếu tố rủi  
ro, mặc dù một số yếu tố rủi ro không phù hợp với một số loại dự án, hoặc ít quan  
trọng hơn. Cách đánh giá này hạn chế ở độ phức tạp tính toán cũng như chi phí xử lý.  
Chọn ra được các yếu tổ rủi ro quan trọng nhất tác động lên toàn bộ dự án hoặc lên  
từng giai đoạn của dự án có thể làm tăng độ chính xác của dự đoán và đánh giá rủi ro.  
Chúng tôi tổng hợp từ một số bộ chỉ số nguy cơ tiêu chuẩn đã được công bố như  
phân loại rủi ro của SEI [25], phân loại rủi ro của NASA NPD2820 [26], cùng với kết  
quả nghiên cứu (24 chỉ số rủi ro) của A.K.T. Hui và D.B. Liu [3], lựa chọn 27 chỉ số  
rủi ro của C. Kumar và D.K. Yadav [21] để xây dựng lên bộ chỉ số nguy cơ rủi ro  
trong lập lịch dự án phần mềm. Bộ chỉ số rủi ro trong lập lịch dự án phần mềm được  
chỉ ra trong Bảng 1.  
2.2.2. Xây dựng các mối quan hệ nhân quả giữa các chỉ số nguy cơ: Việc xây dựng  
các mối quan hệ nhân quả giữa các chỉ số rủi ro chính là việc mô hình hóa các mối  
quan hệ nhân quả giữa các Yếu tố rủi ro, Hậu quả và Kết cục để hình thành các mạng  
Bayes. Ví dụ Mạng Bayes con như trong Hình 2, và tích hợp các mạng con Bayes ta  
được mô hình Mạng Bayes hợp nhất như trong Hình 3.  
2.2.3. Xây dựng bảng xác suất nút cho mỗi nút của mô hình: Việc xây dựng bảng nút  
xác suất NPT cho mỗi nút của mô hình đòi hỏi dữ liệu dự án thực tế. Điều quan trọng  
và không thể thiếu trong việc áp dụng Mạng Bayes vào quản lý dự án là sự đánh giá,  
51  
Chuyên san Công nghệ thông tin và Truyền thông - Số 10 (06-2017)  
Thành phần  
Thành phần chi tiết  
Quản lý dự án kém  
Áp lực thời gian  
Yếu tố rủi ro  
Thay đổi đặc tả thường xuyên  
Quy trình không phù hợp  
Công nghệ không phù hợp  
Nhiệm vụ không hoàn thành  
Tiêu tốn nguồn lực  
Hậu quả  
Kết cục  
Vấn đề về độ tin cậy  
Chậm kế hoạch  
Bảng 1. Phân loại các yếu tố rủi ro.  
Hình 2. Mạng con Bayes.  
nhận định từ chuyên gia, điều này giúp người quản lý dự án có thể trong việc xây dựng  
mô hình cũng như tính toán được các giá trị xác suất.  
Chúng tôi lựa chọn sử dụng bộ dữ liệu có sẵn PSPLIB (Project Scheduling Problem  
Library) [27] để xây dựng bảng nút xác suất cho mô hình. PSPLIB là một tập các  
trường hợp tiêu chuẩn cho việc đánh giá các giải pháp cho vấn đề lập kế hoạch dự án  
với nguồn lực hạn chế ở đơn và đa chế độ. Bảng 2 mô tả kết quả xác suất rủi ro cho  
các yếu tố rủi ro (Risk Factors). Các yếu tố rủi ro là các biến trong toàn bộ quá trình  
phát triển dự án. Các yếu tố này được xây dựng dựa trên sự đánh giá về quá trình lập  
kế hoạch dự án và các yếu tố rủi ro liên quan. Người quản lý và chuyên gia phải dựa  
vào kinh nghiệm của mình để đưa ra được các giá trị xác suất ban đầu.  
Trong nghiên cứu này, chúng tôi sử dụng các bộ dữ liệu trong PSPLIB cho các giai  
đoạn của dự án, mỗi giai đoạn được phân chia công việc theo các nguồn lực tương ứng.  
Cùng với đó là sự xuất hiện của các yếu tố rủi ro đến từ việc lập lịch dự án và các yếu  
Các yếu tố  
Xác suất xảy ra Xác suất không xảy ra  
Quản lý dự án kém  
Áp lực thời gian  
Thay đổi đặc tả thường xuyên  
Quy trình không phù hợp  
Công nghệ không phù hợp  
0.575  
0.6179  
0.626  
0.611  
0.55  
0.425  
0.3821  
0.374  
0.389  
0.45  
Bảng 2. Ví dụ về xác xuất cụ thể với bộ các yếu tố rủi ro đề xuất.  
52  
Tạp chí Khoa học và Kỹ thuật - Học viện KTQS - Số 184 (06-2017)  
Hình 3. Mô hình Mạng Bayes đề xuất.  
tố bên ngoài.  
2.2.4. Tính giá trị xác suất rủi ro cho lập lịch dự án: Sau khi đã có giá trị các yếu tố  
rủi ro, ta áp dụng công thức Bayes để tính xác suất của Hậu quả và cuối cùng là xác  
suất của Kết cục. Công thức tính xác suất biên được áp dụng vào việc tính toán này.  
Việc tính toán lần lượt từng cấp độ các nút mạng sẽ giúp đánh giá khách quan hơn về  
ảnh hưởng của các yếu tố rủi ro đến Hậu quả và Kết cục. Nó không những giúp người  
quản lý có cái nhìn dễ dàng hơn về rủi ro thất bại trong lập lịch dự án của mình mà  
còn giúp họ dễ dàng điều chỉnh và nhận thấy tác động của sự điều chỉnh này tới kết  
quả.  
Chúng tôi sử dụng HuginExpert [28] cung cấp thư viện hỗ trợ giúp tính toán một  
cách dễ dàng hơn. Nghiên cứu này ngoài việc dự đoán xác suất thất bại của quản trị  
rủi ro trong lập lịch dự án còn đề xuất thêm trình tự quản lý rủi ro, việc này giúp nhà  
quản lý thấy được rõ ràng dự án đang gặp vấn đề ở đâu, và cần phải giải quyết vấn  
đề nào trước, vấn đề nào sau, ưu tiên nguồn lực vào điểm nào. Thực chất của trình tự  
quản lý rủi ro là việc theo dõi kế hoạch dự án qua từng giai đoạn, đưa ra cảnh báo  
kịp thời đến người quản trị dự án khi các yếu tố rủi ro hay hậu quả vượt ngưỡng cho  
phép (giá trị xác suất thể hiện mức độ rủi ro tối đa được phép đạt tới mà vẫn đảm bảo  
không ảnh hưởng đến lịch trình dự án) dẫn tới ảnh hưởng tới toàn bộ lịch trình.  
3. Xây dựng công cụ CKDY và dữ liệu thử nghiệm  
3.1. Xây dựng công cụ  
3.1.1. Các bước phát triển công cụ: Công cụ CKDY [29] được phát triển theo 4 bước  
chuẩn IEEE Standard 1540 (2001). Chúng tôi kế thừa các lớp, hàm và các API của  
53  
Chuyên san Công nghệ thông tin và Truyền thông - Số 10 (06-2017)  
Hình 4. Trình tự quản lý rủi ro.  
HuginExpert cung cấp các giải pháp phân tích, dự đoán sử dụng Bayes cho ngôn ngữ  
Java (ParseListener, Domain, Compiler... ). Các chức năng bao gồm (Hình 4): Tính  
toán, dự đoán xác suất rủi ro trong các giai đoạn của dự án; đưa ra các cảnh báo cho  
người quản lý sau mỗi giai đoạn; xếp hạng chỉ số nguy cơ cho các yếu tố rủi ro; cung  
cấp đồ thị trực quan sự biến thiên xác suất cho từng giai đoạn.  
Bước 1 - Khởi tạo Mạng Bayes: Dựa trên nguyên mẫu chung của Mạng Bayes, ta  
thêm vào các yếu tố rủi ro cụ thể phù hợp với từng dự án. Thiết lập các nút cần được  
theo dõi và các giả định cũng như trạng thái của từng nút.  
Bước 2 - Tính toán và đưa ra các dự đoán từ Mạng Bayes: Khi dự án được bắt đầu  
thì cũng bắt đầu vòng lặp theo dõi trạng thái các nút. Mỗi khi có dữ liệu mới được cập  
nhật chúng được đưa vào Mạng Bayes để tính toán và cập nhật lại các xác suất cũng  
như các ước tính. Lịch sử dữ liệu của mỗi tuần đều được lưu để tiện cho việc đối chiếu  
sau này.  
Bước 3 - Theo dõi và phân tích rủi ro, điều chỉnh tài nguyên:  
Bước 3.1 - Theo dõi và phân tích rủi ro: Trong mô hình Mạng Bayes tổng quát chúng  
ta có các nút liên quan và ảnh hưởng trực tiếp đến thành công của lập lịch dự án như  
“Nhiệm vụ không hoàn thành”, “Tiêu tốn nguồn lực”, “Vấn đề độ tin cậy”. Những nút  
này sẽ được theo dõi trong khoảng thời gian nhất định (tùy thuộc tài nguyên dự án và  
độ chính xác mà người quản trị sẽ quy định khoảng thời gian này). Nếu xác suất xảy ra  
những nút này hoặc những nút con của chúng xảy ra cao hơn ngưỡng cho phép, hàm  
54  
Tạp chí Khoa học và Kỹ thuật - Học viện KTQS - Số 184 (06-2017)  
Hình 5. Hàm Tracing.  
Tracing sẽ được gọi để xác định nguyên nhân (xem Hình 5).  
Bước 3.2 - Điều chỉnh tài nguyên dự án: Các hoạt động của dự án phát triển phần  
mềm có thể có một điểm bão hòa. Khi đó chúng ta càng dành nhiều nguồn lực để thực  
hiện các nhiệm vụ thì chi phí càng tăng nhưng chất lượng không cải thiện được đáng  
kể, hay hiệu suất càng giảm đi. Do đó hàm Saturation (xem Hình 6) được gọi theo chu  
kỳ - hàng tuần hoặc lâu hơn tùy thuộc vào quyết định của người quản lý - để kiểm tra  
xem các nút được giám sát đã đạt tới điểm bão hòa hay chưa từ đó đưa ra quyết định.  
Hàm Ranking (xem Hình 7) cũng được gọi theo chu kỳ để sắp xếp độ hiệu quả của  
các nút: Nếu mức độ hiệu quả của tài nguyên có dữ liệu định lượng thì có thể sắp xếp  
thứ hạng một cách dễ dàng (tính theo chi phí hoạt động cho mỗi nút). Nếu chưa có dữ  
liệu định lượng cho các nút đó thì ta sẽ dùng Mạng Bayes cho việc đánh giá hiệu quả.  
Khi có nút được xếp thứ hạng cao hơn ta sẽ phân bổ lại nguồn lực để tăng độ hiệu  
quả của dự án.  
Bước 4: Dựa trên các phân tích cũng như số liệu về rủi ro dự án người quản lý sẽ  
chọn phương pháp tương ứng để xử lý rủi ro.  
3.1.2. Cấu trúc đầu vào của công cụ: Đầu vào của công cụ là một tệp định dạng “.net”  
được tạo ra từ phần mềm Hugin theo mạng Bayes. Sử dụng công cụ Hugin để xây dựng  
biểu đồ mối quan hệ nhân quả giữa các nút và cung cấp bảng nút xác suất NPT cho  
mỗi nút của mô hình dựa trên bộ dữ liệu có sẵn và sự đánh giá từ chuyên gia. Dữ liệu  
đầu vào của công cụ là xác suất của các Yếu tố rủi ro (quản lý dự án kém, áp lực thời  
gian, thay đổi đặc tả thường xuyên, quy trình không phù hợp, công nghệ không phù  
hợp) theo các biến True hoặc False. Cùng với đó là đánh giá xác suất phụ thuộc của  
các Hậu quả (nhiệm vụ không hoàn thành, tiêu tốn nguồn lực, tấn đề về độ tin cậy) và  
Kết cục (chậm kế hoạch) theo điều kiện của các Yếu tố rủi ro tương ứng (ví dụ: xác  
suất True của "Nhiệm vụ không hoàn thành" khi "Quản lý dự án kém" là True, và "Áp  
lực thời gian" là True, là 0.65).  
55  
Chuyên san Công nghệ thông tin và Truyền thông - Số 10 (06-2017)  
Hình 6. Hàm Saturation.  
Hình 7. Hàm Ranking.  
3.1.3. Cấu trúc đầu ra của công cụ: Đầu ra của công cụ là xác suất các Hậu quả và  
Kết cục của toàn bộ dự án theo một giá trị cụ thể và cảnh báo về trạng thái rủi ro của  
56  
Tạp chí Khoa học và Kỹ thuật - Học viện KTQS - Số 184 (06-2017)  
Hậu quả và Kết cục tương ứng. Nếu xác suất True của các nút này lớn hơn ngưỡng cho  
phép trong N tuần liên tiếp thì sẽ bị đặt vào tình trạng cảnh báo giúp người quản lý dễ  
dàng nhận thấy vấn đề nào cần được giải quyết ngay để tránh ảnh hưởng đến toàn bộ  
dự án, từ đó có những điều chỉnh hợp lý. Trong công cụ và các thử nghiệm, ngưỡng  
chịu đựng của các hậu quả (Nhiệm vụ không hoàn thành, Tiêu tốn nguồn lực, Vấn đề  
về độ tin cậy) được đặt bằng 0.5 (50%).  
3.1.4. Luồng xử lý: Luồng xử lý của công cụ là đọc bộ dữ liệu đầu vào từ các file  
được thiết kế theo chuẩn của Hugin, từ dữ liệu được nhập vào sẽ sử dụng bộ thư viện  
do Hugin cung cấp nhằm tính toán xác suất cho các nút mạng, việc xử lý đọc dữ liệu  
đầu vào quyết định đến kết quả tính toán của công cụ. Kết quả tính toán được thể hiện  
ra màn hình để người quản lý có thể thấy được xác suất của từng hạng mục, nhờ đó  
họ có thể dự đoán, kiểm tra, bổ sung, thay thế,... để đáp ứng yêu cầu của việc lập lịch  
dự án.  
Ngoài ra, công cụ còn cho phép lên kịch bản tối đa 7 giai đoạn dự án, nhằm cho  
phép người quản lý thấy được chi tiết hơn việc lập kế hoạch còn có những vấn đề cần  
được giải quyết trong toàn bộ quá trình, đưa ra cho người quản lý cảnh báo theo từng  
tuần về việc các nút mạng vượt ngưỡng an toàn, quá thời gian cho phép. Tđó họ dễ  
dàng quản lý các công việc của dự án. Các hàm cơ bản Ranking, Staturation nhằm mục  
đích đưa ra cảnh báo vượt ngưỡng và sắp xếp độ tin cậy này.  
3.2. Xây dựng bộ dữ liệu thử nghiệm  
Dữ liệu cần thiết là xác suất của các yếu tố rủi ro được chọn lọc trong Bảng 1 (quản  
lý dự án kém, áp lực thời gian, thay đổi đặc tả thường xuyên, quy trình không phù hợp,  
công nghệ không phù hợp). Chúng tôi sử dụng các file dữ liệu trong bộ PSPLIB cho  
các giai đoạn của dự án, mỗi giai đoạn được phân chia công việc theo các nguồn lực  
tương ứng.  
Phần mềm RESCON (RESource CONstrained) [30] được sử dụng để hiển thị tập tin  
trên giao diện trực quan. RESCON được phát triển bởi đại học Katholieke Leuven (Bỉ),  
là phần mềm nguồn mở miễn phí phục vụ nghiên cứu các vấn đề về lập kế hoạch dự  
án có các ràng buộc nguồn lực.  
Từ những biểu đồ về nguồn lực và thời gian đưa ra những đánh giá về xác suất của  
các yếu tố rủi ro. Do chưa có bộ dữ liệu thực tế nên nghiên cứu dựa vào bộ dữ liệu  
thử nghiệm và đưa ra những đánh giá chủ quan về xác suất ban đầu (xảy ra và không  
xảy ra) của các yếu tố rủi ro.  
4. Thử nghiệm và đánh giá  
4.1. Thử nghiệm mô hình  
Hai bộ dữ liệu từ PSPLIB được sử dụng. Mỗi bộ có 7 file tương ứng cho 7 giai đoạn  
cho phép trong thiết kế của công cụ. Với mỗi bộ dữ liệu sẽ có một kịch bản thử nghiệm  
57  
Chuyên san Công nghệ thông tin và Truyền thông - Số 10 (06-2017)  
Hình 8. Sơ đồ liên kết các hoạt động trong j30.  
(với 7 giai đoạn). Sử dụng RESCON mô hình hóa các file trong bộ dữ liệu PSPLIB.  
Ví dụ với tập tin j301_1.rcp [29] (xem Hình 8).  
Ví dụ về j30 trong bộ dữ liệu thứ nhất, ở lịch trình bắt đầu sớm (early start schedule),  
việc lập lịch thường bị vi phạm ràng buộc tài nguyên vì chỉ tính toán đến thời gian  
bắt đầu sớm nhất và quan hệ trước sau của các hoạt động. Ví dụ Resource 1 sử dụng  
đến 21 đơn vị trong khi chỉ đáp ứng được 12 đơn vị tài nguyên (trục tung), hoặc như  
Resource 2 sử dụng đến 25 đơn vị trong khi chỉ đáp ứng được 13 đơn vị tài nguyên.  
Ở đây, RESCON thể hiện giới hạn ràng buộc số lượng tài nguyên bằng đường màu đỏ  
(xem Hình 9).  
Công cụ tính ra xác suất của mỗi yếu tố rủi ro trong từng giai đoạn, đồng thời xác  
suất chậm kế hoạch từng giai đoạn. Dựa vào các xác suất và ngưỡng, công cụ cũng  
cảnh báo về hậu quả theo 6 mức cho từng giai đoạn và từng yếu tố rủi ro.  
Dựa vào các thông số đó, người quản lý dự án có thể xem xét việc phân bổ lại nguồn  
lực hợp lý, để đáp ứng với từng giai đoạn của dự án (xem Hình 10). Xác suất của các  
yếu tố rủi ro trong toàn bộ dự án có thể tính bằng cách lấy trung bình của các giai  
đoạn (Bảng 3 và Bảng 4).  
Theo dõi từng giai đoạn của từng kịch bản thử nghiệm ta nhận thấy rằng nếu ngay  
từ các công việc đầu tiên đã có vấn đề, thì xác suất thất bại của lập lịch dự án tăng  
dần theo chu kỳ, và nếu đội dự án (quản trị dự án) không có biện pháp can thiệp sớm  
thì xác suất này sẽ tăng vượt mức cho phép, ảnh hưởng trực tiếp tới toàn bộ dự án.  
58  
Tạp chí Khoa học và Kỹ thuật - Học viện KTQS - Số 184 (06-2017)  
Hình 9. Thử nghiệm j30 với lịch trình bắt đầu sớm.  
Các yếu tố  
Xác suất xảy ra Xác suất không xảy ra  
Quản lý dự án kém  
Áp lực thời gian  
Thay đổi đặc tả thường xuyên  
Quy trình không phù hợp  
Công nghệ không phù hợp  
0.505  
0.7536  
0.643  
0.6625  
0.666  
0.495  
0.2464  
0.357  
0.3375  
0.334  
Bảng 3. Xác suất của các yếu tố rủi ro trong toàn bộ dự án với bộ dữ liệu 1.  
4.2. Đánh giá mô hình và công cụ  
Mô hình được C. Kumar và D.K. Yadav [21] đề xuất cho quản trị rủi ro toàn bộ dự  
án phần mềm, nhưng đã cho thấy hiệu quả trong việc áp dụng cho lập lịch dự án vì  
tận dụng được Mạng Bayes để dự đoán xác suất thất bại của dự án tại từng thời điểm,  
dựa trên bộ chỉ số rủi ro tác động lớn nhất trong quá trình lập lịch dự án.  
Công cụ kiểm nghiệm mô hình cho thấy có thể giám sát các nút và đưa ra các cảnh  
báo khi các nút đạt trạng thái bão hòa, cũng như xếp hạng được mức độ hiệu quả của  
các nút để từ đó đưa ra thông tin hỗ trợ cho việc phân bổ lại nguồn lực, hay có thể giúp  
cho nhà quản lý dự án luôn kiểm soát được xác suất thất bại của dự án trong ngưỡng  
Các yếu tố  
Xác suất xảy ra Xác suất không xảy ra  
Quản lý dự án kém  
Áp lực thời gian  
Thay đổi đặc tả thường xuyên  
Quy trình không phù hợp  
Công nghệ không phù hợp  
0.575  
0.6179  
0.626  
0.611  
0.55  
0.425  
0.3821  
0.374  
0.389  
0.45  
Bảng 4. Xác suất của các yếu tố rủi ro trong toàn bộ dự án với bộ dữ liệu 2.  
59  
Chuyên san Công nghệ thông tin và Truyền thông - Số 10 (06-2017)  
Hình 10. Biểu đồ xác suất hoàn thành từng giai đoạn.  
Các yếu tố  
Xác suất xảy ra (%) Xác suất không xảy ra (%)  
Quản lý dự án kém  
Áp lực thời gian  
Thay đổi đặc tả thường xuyên  
Quy trình không phù hợp  
Công nghệ không phù hợp  
18.39  
23.04  
14.46  
13.93  
12.32  
81.61  
76.96  
85.54  
86.07  
87.68  
Bảng 5. Xác suất của các yếu tố rủi ro thử nghiệm so sánh với MSBNx.  
cho phép (trong thử nghiệm được đặt bằng 0.5).  
Công cụ CKDY cũng được thử nghiệm so sánh với phần mềm MSBNx [31] của  
Microsoft phục vụ cho việc xây dựng và tính toán theo Mạng Bayes. Công cụ MSBNx  
được phát triển từ năm 2001 và được đưa vào thực nghiệm qua rất nhiều dự án nên có  
thể tin tưởng mức độ tin cậy của MSBNx. Hai công cụ được thực hiện so sánh theo  
mô hình Mạng Bayes đề xuất và bộ dữ liệu đầu vào với xác suất của các Yếu tố rủi ro.  
Cả hai công cụ đều thực hiện những tính toán xác suất của các Hậu quả và cuối cùng  
là Kết cục (khả năng chậm kế hoạch) của dự án.  
Kết quả cho thấy sự tương đồng trong việc đánh giá hậu quả và kết cục theo mô  
hình nghiên cứu đề xuất. Ví dụ với bộ xác suất các yếu tố rủi ro như ở Bảng 5 (dựa  
vào 7 file tương ứng với 7 giai đoạn từ bộ PSPLIB), ta có Bảng 6 so sánh kết quả của  
hai công cụ.  
60  
Tạp chí Khoa học và Kỹ thuật - Học viện KTQS - Số 184 (06-2017)  
Thành phần  
Hậu quả  
Thành phần chi tiết  
Nhiệm vụ không hoàn thành  
Tiêu tốn nguồn lực  
MSBNx(%) CKDY(%)  
9.30  
12.20  
11.30  
9.20  
9.26  
12.25  
12.47  
9.18  
Vấn đề về độ tin cậy  
Chậm kế hoạch  
Kết cục  
Bảng 6. Kết quả so sánh MSBNx và CKDY.  
5. Kết luận  
Bài báo đã áp dụng được lý thuyết Mạng Bayes vào mô hình quản lý rủi ro trong dự  
án phần mềm ở những giai đoạn đầu tiên là lập kế hoạch - lập lịch dự án phần mềm.  
Qua phân tích, lược khảo tài liệu về các nghiên cứu liên quan, bài báo đã đưa ra được  
bộ các yếu tố rủi ro có tác động nên quá trình lập lịch dự án. Công cụ CKDY thử  
nghiệm mô hình sử dụng bộ các yếu tố rủi ro này trên bộ dữ liệu PSPLIB đã cho thấy  
độ chính xác và độ tin cậy cao. Nhóm nghiên cứu sẽ tiếp tục tiến hành khảo sát, đánh  
giá, kiểm nghiệm thực tế, các nghiên cứu tình huống (case study) để hoàn thiện bộ các  
yếu tố rủi ro cũng như kiểm định mối quan hệ nhân quả.  
Như mục tiêu của nghiên cứu, mô hình được sử dụng cố gắng đưa ra bức tranh chính  
xác về những nguy cơ cho dự án phần mềm ở giai đoạn đầu, nhằm giúp kiểm soát sớm  
các rủi ro. Để phát triển thêm mô hình, nhóm nghiên cứu sẽ tiếp tục phân tích, rà soát  
bộ các yếu tố rủi ro cho dự án phần mềm cũng như từng giai đoạn của dự án. Việc  
mô hình hóa và định lượng rủi ro ở các giai đoạn sau của dự án phần mềm cũng sẽ  
được xem xét. Một hướng nghiên cứu nữa liên quan là xem xét việc tích hợp mô hình  
xác suất (Mạng Bayes) vào các kỹ thuật lập lịch dự án phần mềm thông dụng (CPM,  
PERT, mô phỏng Monte Carlo v.v.[14]) để đánh giá hiệu quả của việc mô hình hóa các  
yếu tố rủi ro trong các kỹ thuật lập lịch với đặc thù dự án phần mềm.  
Công cụ CKDY được tạo ra vẫn còn ở giai đoạn nghiên cứu thử nghiệm nên vẫn còn  
khó sử dụng với người sử dụng không chuyên (do đầu vào tuân theo chuẩn của công  
cụ Hugin) cũng như các chức năng chưa đa dạng. Công cụ cần được đa dạng hóa tính  
năng và giao diện, đơn giản hóa đầu vào giúp người không chuyên có thể sử dụng dễ  
dàng. Ngoài ra, nhóm tác giả cần sự đánh giá của chuyên gia giúp xây dựng xác suất  
đầu vào và nhiều bộ dữ liệu thực tế trong công nghiệp phần mềm.  
Tài liệu tham khảo  
[1] B.W. Boehm, Software Risk Management: Principles and Practices, IEEE Software, vol. 8(1), pp. 32–41, 2001.  
[2] M. Dedolph, The Neglected Management Activity: Software Risk Management, Bell Labs Technical Journal,  
vol. 8(3), pp. 91–95, 2003.  
[3] A.K.T. Hui and D.B. Liu, A Bayesian Belief Network model and tool to evaluate risk and impact in software  
development projects, Reliability and Maintainability, 2004 Annual Symposium – RAMS: pp. 297-301, 2004.  
[4] T. Dyba and T. Dingsøyr, Empirical studies of agile software development: A systematic review, Information  
and Software Technology 50.9-10, pp. 833–859, ISSN: 0950-5849, 2008.  
[5] P. Abrahamsson et al., Agile software development methods - Review and analysis, Technical report 478, VTT  
PUBLICATIONS, 2002.  
[6] S. Augustine, Managing Agile Projects, Upper Saddle River, NJ, USA: Prentice Hall PTR, ISBN: 0131240714,  
2005.  
61  
Chuyên san Công nghệ thông tin và Truyền thông - Số 10 (06-2017)  
[7] B. Freimut et al, An Industrial Case Study of Implementing Software Risk Management, Proceedings of the  
8th European Software Engineering Conference held jointly with 9th ACM SIGSOFT International Symposium  
on Foundations of Software Engineering, ESEC/FSE-9, pp. 277–287, 2001.  
[8] S. McConnell, Software Project Survival Guide: How to Be Sure Your First Important Project Isn’t Your Last,  
Microsoft Press, Redmond, WA, 1997.  
[9] B.J. Anthony et al, A Proposed Risk Assessment Model for Decision Making in Software Management, Journal  
of Soft Computing and Decision Support Systems, vol. 3 (5), pp 31-43, 2016.  
[10] S.K. Sharma and U. Chanda, Developing a Bayesian Belief Network model for prediction of R&D project  
success, Journal of Management Analytics, vol. 4 (2), pp.1-24, 2017.  
[11] Lee, Y. Park and J. G. Shin, Large Engineering Project Risk Management Using a Bayesian Belief Network,  
Expert Systems with Applications, vol. 36(3), pp. 5880–5887, 2009.  
[12] Y. Hu et al., Software Project Risk Analysis Using Bayesian Networks with Causality Constraints, Decision  
Support Systems, vol. 56, pp. 439–449, 2013.  
[13] N.T. Nguyen and Q.T. Huynh, Iteration scheduling using Bayesian Networks in agile software development,  
Proceedings of FAIR’17 (accepted), 2017.  
[14] N.E. Fenton and M. Neil, Decision support software for probabilistic risk assessment using Bayesian Networks,  
IEEE Software, vol. 31 (2), pp. 21-26, 2014.  
[15] N. Fenton and M. Neil, Risk Assessment and Decision Analysis with Bayesian Networks, MReading book,  
CRC Press, 2013.  
[16] C. Kumar and D. K. Yadav, A Bayesian Approach of Software Risk Assessment, International Journal of  
Applied Engineering Research (IJAER), vol. 10, pp. 2366-2371, 2015.  
[17] J. Menezes Jr., C. Gusmao and H. Moura, Defining Indicators for Risk Assessment in Software Development  
Projects, CLEI Electronic Journal, vol. 16(1), 2013.  
[18] J. D. Procaccino et al., Case Study: Factors for Early Prediction of Software Development Success, Information  
and Software Technology, vol. 44(1), pp. 53–62, 2002.  
[19] J. Jiang and G. Klein, Software Development Risks to Project Effectiveness, Journal of Systems and Software,  
vol. 52(1), pp. 3–10, 2000.  
[20] L. Wallace, M. Keil and A. Rai, Software Project Risks and their Effect on Outcomes, Communications of  
the ACM, vol. 47(4), pp. 68–73, 2004.  
[21] C. Kumar and D. K. Yadav, A Probabilistic Software Risk Assessment and Estimation Model for Software  
Projects, Procedia Computer Science 54, pp. 353–361, 2015.  
[22] M. Sadiq and M. Shahid, A Systematic Approach for the Estimation of Software Risk and Cost using EsrcTool,  
CSIT, vol. 1(3), pp. 243–252, 2013.  
[23] V. Cortellessa et al, Model-Based Performance Risk Analysis, IEEE Transactions on Software Engineering,  
vol. 31(1), pp. 3–20, 2005.  
[24] S. Islam, Software Development Risk Management Model - A Goal-Driven Approach, Technical Report,  
2012.  
[25] C.J. Alberts and A.J. Dorofee, Risk management framework, SEI Technical Report, 2010.  
[26] NASA Policy Detective, NPD 2820.1A NASA Software Policies , 2005.  
[27] PSPLIB,  
[28] HuginExpert,  
[29] Đường link chứa phần mềm CKDY và các dữ liệu thử nghiệm,  
[30] RESCON,  
[31] MSBNx,  
Ngày nhận bài 14-6-2017; Ngày chấp nhận đăng 13-10-2017.  
62  
Tạp chí Khoa học và Kỹ thuật - Học viện KTQS - Số 184 (06-2017)  
Nguyễn Ngọc Tuấn tốt nghiệp thạc sĩ ngành Business Information Technology tại Trường ĐH  
Twente (Hà Lan) năm 2010. Hiện công tác tại Viện Nghiên cứu cao cấp về Toán và là nghiên  
cứu sinh tại Viện Công nghệ thông tin và Truyền thông, Trường ĐH Bách khoa Hà Nội. Các  
hướng nghiên cứu chính: Lập lịch dự án phần mềm; Quản trị rủi ro dự án; Quy trình phát  
triển phần mềm.  
Trần Trung Hiếu tốt nghiệp Đại học Bách khoa Hà Nội chuyên ngành Công nghệ thông tin  
vào năm 2017. Hiện nay làm việc tại Công ty Dimage Share (Nhật Bản).  
Huỳnh Quyết Thắng tốt nghiệp Trường ĐH Điện-Máy Varna, CH Bungaria năm 1990. Nhận  
bằng Tiến sỹ năm 1995 tại Trường Tổng hợp kỹ thuật Varna (TU Varna), CH Bungaria. Nhận  
học hàm PGS năm 2007. Hiện công tác tại Viện Công nghệ thông tin và Truyền thông, Trường  
ĐH Bách khoa Hà Nội. Các hướng nghiên cứu chính: Đánh giá chất lượng phần mềm; Kỹ  
thuật phát triển phần mềm; Đánh giá chi phí công sức; Các mô hình toán học và công cụ.  
63  
pdf 17 trang yennguyen 08/04/2022 6040
Bạn đang xem tài liệu "Phương pháp xác suất cải tiến sử dụng mạng Bayes đánh giá rủi ro trong lập lịch dự án phần mềm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfphuong_phap_xac_suat_cai_tien_su_dung_mang_bayes_danh_gia_ru.pdf