Cộng đồng chia sẻ tri thức Lib24.vn

Hướng tới mô hình mạng Bayes để đánh giá rủi ro trong lập trình dự án phần mềm

dbf5b2326ecd7b0698bd9cd72dd118c9
Gửi bởi: Khoa CNTT - HCEM 23 tháng 11 2020 lúc 10:50:37 | Được cập nhật: 22 giờ trước (8:30:58) Kiểu file: PDF | Lượt xem: 518 | Lượt Download: 9 | File size: 0.715934 Mb

Nội dung tài liệu

Tải xuống
Link tài liệu:
Tải xuống

Các tài liệu liên quan


Có thể bạn quan tâm


Thông tin tài liệu

See discussions, stats, and author pro/files for this publication at: https://www.researchgate.net/publication/332199134

HƯỚNG TỚI MÔ HÌNH MẠNG BAYES ĐỂ ĐÁNH GIÁ RỦI RO TRONG LẬP LỊCH
DỰ ÁN PHẦN MỀM
Conference Paper · August 2017
DOI: 10.15625/vap.2017.00035

CITATIONS

READS

0

989

3 authors:
Ngoc-Tuan Nguyen

Võ Thị Hường

Ministry of Education and Training, Vietnam

Trường cao đẳng cơ điện Hà Nội

6 PUBLICATIONS 12 CITATIONS

2 PUBLICATIONS 0 CITATIONS

SEE PROFILE

Thang Huynh Quyet
Hanoi University of Science and Technology
70 PUBLICATIONS 138 CITATIONS
SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Multi-Objective Optimization in Project Management View project

Mobile Application Testing (Android Apps) View project

All content following this page was uploaded by Ngoc-Tuan Nguyen on 10 April 2019.

The user has requested enhancement of the downloaded file.

SEE PROFILE

Kỷ yếu Hội nghị Quốc gia lần thứ X về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR), Đà Nẵng, ngày 17-18/08/2017
DOI: 10.15625/vap.2017.00035

HƯỚNG TỚI MÔ HÌNH 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, Võ Thị Hường2, Huỳnh Quyết Thắng1
1

Viện Công nghệ thông tin và Truyền thông, Trường Đại học Bách khoa Hà Nội
2

Khoa Công nghệ thông tin, Trường Cao đẳng Cơ điện Hà Nội

[email protected], [email protected], [email protected]
TÓM TẮT: Quản trị rủi ro là một khâu quan trọng trong quản lý dự án phần mềm. Mục tiêu của nghiên cứu này nhằm đưa ra một
mô hình toán học hiệu quả để trợ giúp dự đoán chính xác, lượng hóa được các rủi ro cũng như hậu quả của chúng tác động vào dự
án ngay từ quá trình then chốt là lập lịch dự án. Từ mô hình, chúng ta có thể xây dựng được công cụ áp dụng trong tính toán các rủi
ro của dự án phần mềm. Từ kết quả tính toán được, đội dự án có thể thực hiện các hành động thích hợp để giảm thiểu rủi ro và
người quản trị dự án có thể quản lý tốt hơn ngân sách và thời gian của dự án. Cụ thể, trong bài báo sử dụng mô hình Mạng Bayes
và đề xuất giải thuật BRI đánh giá ảnh hưởng của các yếu tố rủi ro. Một công cụ phần mềm cũng được xây dựng để thử nghiệm mô
hình mạng Bayes và thuật toán đề xuất.
Từ khóa: Rủi ro và ảnh hưởng, quản trị rủi ro, định lý Bayes, mạng Bayes, lập lịch dự án.

I. GIỚI THIỆU CHUNG
Có những sự kiện trong tương lai có thể ảnh hưởng tiêu cực đến kết quả của dự án. Một sự kiện trong tương lai chỉ
có thể có tính chất rủi ro nếu nó bất định (uncertain). Nếu sự kiện đã được xác định thì nó không còn là rủi ro nữa, ngay cả
khi toàn bộ đội dự án không nhận thức được sự kiện đó đã rõ ràng (ví dụ các cá nhân biết được dự án sẽ bị chậm ngay cả
khi quản trị dự án và các nhân viên có kinh nghiệm không biết).
Rủi ro luôn gắn với một mục tiêu đo lường được mà chúng ta đang cố gắng đạt được. Nếu không có mục tiêu thì
không có rủi ro, ví dụ không thể có rủi ro về lịch trình hay lập lịch nếu không có thời hạn hoàn thành. Một khi một mục
tiêu bị tác động bởi một rủi ro thì chúng ta nói rủi ro đã được kích hoạt. Mức độ nguy hại của kết quả phụ thuộc vào việc
rủi ro đó làm chúng ta xa rời mục tiêu đến mức độ nào. Như vậy một khi rủi ro đã được kích hoạt thì phải có luôn một quy
trình giảm thiểu rủi ro, tức là quy trình giảm thiểu mức độ nguy hại của kết quả có thể xảy ra.
Quản trị rủi ro là một công việc rất quan trọng trong thực hiệ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 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 và 31,1% phải hủy trước khi hoàn thành. Thống kê cũng cho thấy 53% các dự án phát triển
phần mềm vượt ngân sách, chậm thời hạn (hoặc nếu đúng hạn thì có ít tính năng hơn thiết kế ban đầu). Đố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 từ những giai
đoạn ban đầu của dự án.
Trong quản trị rủi ro dự án thì phân tích rủi ro dự án là giai đoạn đánh giá các rủi ro và tác động của chúng nên các
đầu ra của dự án (như chi phí, thời gian, chất lượng phần mềm) [3]. Phân tích rủi ro là bước quan trọng nhất trong quy
trình quản lý rủi ro dự án, thường bao gồm các kỹ thuật phức tạp và dùng phần mềm tính toán. Nó được xử lý liên tục tức
là có thể bắt đầu tại bất kỳ giai đoạn nào của vòng đời dự án. Thực hiện đánh giá rủi ro càng có ý nghĩa quan trọng ở
những giai đoạn đầu của dự án, cụ thể ở công việc lập lịch dự án (thuộc giai đoạn lập kế hoạch dự án). Điều đó sẽ giúp hỗ
trợ đưa ra quyết định và hiệu quả hơn trong toàn bộ quá trình quản lý rủi ro, giúp đưa ra kế hoạch, lịch trình thực tế hơn
đồng thời giúp thống kê thông tin về các rủi ro từ đó sẽ đưa ra mô hình tốt hơn cho các dự án sau này, làm tăng cơ hội
thành công của dự án.
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 như tính cá nhân (chưa từng có kinh nghiệm tương tự trước đó), tính biến đổi (sự thay đổi có
ảnh hưởng lẫn nhau giữa thời gian, chi phí và chất lượng), 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). 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 đó [4]. Từ
những năm 1990 nhiều quy trình quản trị rủi ro đã được đề xuất. Có lẽ quy trình quản trị rủi ro dự án phổ biến nhất là ở
chương 11 của hướng dẫn PMBOK (Project Management Body of Knowledge) [5], hướng dẫn PRAM (Project Risk
Analysis and Management) [6] và hướng dẫn RAMP (Risk Analysis and Management for Projects) [7]. Nhiều phương
pháp 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 đó sử dụng “ý kiến chuyên gia” theo cách truyền thống

HƯỚNG TỚI MÔ HÌNH MẠNG BAYES ĐỂ ĐÁNH GIÁ RỦI RO TRONG LẬP LỊCH DỰ ÁN PHẦN MỀM

276

mà không có lý thuyết khoa học hay công nghệ nào bổ trợ (tuy nhấn mạnh nhu cầu kiểm soát rủi ro từ sớm trong vòng đời
dự án), và do vậy không đáp ứng được môi trường kinh doanh phức tạp hiện nay. Cần phải có một hướng tiếp cận khoa
học hơn để 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 bài báo này chúng tôi đề xuất thuật toán đánh giá ảnh hưởng của các yếu tố rủi ro sử dụng mô hình Mạng
Bayes trên danh sách 24 yếu tố rủi ro của A. K. T Hui và D. B. Liu [3]. Nội dung của bài báo được trình bày tiếp theo như
sau: trong mục II trình bày mô hình dự đoán đánh giá rủi ro; mục III trình bày tính toán sự ảnh hưởng của các yếu tố rủi
ro; mục IV trình bày xây dựng công cụ và thử nghiệm với các bộ dữ liệu thu thập được và cuối cùng mục V là phần kết
luận.
II. MÔ HÌNH DỰ ĐOÁN ĐÁNH GIÁ RỦI RO
A. Các yếu tố rủi ro thông dụng
Để xây dựng mô hình dự đoán và đánh giá ảnh hưởng của các yếu tố bất định lên dự án phần mềm, ta cần xây
dựng danh sách các yếu tố rủi ro thông thường và quan trọng nhất, biểu diễn các mối quan hệ giữa chúng, đồng thời xác
định trọng số về mức độ ảnh hưởng. Năm 2000, Trường Đại học Bang Arizona - Hoa Kỳ đã thực hiện một khảo sát để
đưa ra được danh sách 24 yếu tố rủi ro thường gặp [8]. A.K.T Hui và D.B. Liu [3] dựa trên danh sách này đã xây dựng
một chương trình tính toán độ ảnh hưởng của 24 yếu tố rủi ro tới khả năng hoàn thành dự án phần mềm và sử dụng mô
hình này làm mô hình cơ sở, sau đó khảo sát nhóm 29 chuyên gia công nghệ thông tin có kinh nghiệm từ 5 đến 25 năm.
Mỗi chuyên gia được phỏng vấn dựa trên kinh nghiệm dự án của họ, điều chỉnh mô hình bằng cách thêm, xóa rủi ro; điều
chỉnh xác suất và trọng số. Sau khi thu thập kết quả điều tra, nghiên cứu đó đưa ra kết quả danh sách các yếu tố rủi ro như
trong Bảng 1. Chúng tôi nhận thấy trong danh sách 24 yếu tố này, tuy rằng là rủi ro của cả dự án, tuy nhiên đều trực tiếp
ảnh hưởng đến thời gian của dự án. Như vậy, 24 yếu tố này cũng chính là các yếu tố rủi ro cần khảo sát khi lập lịch dự án
và được chúng tôi lựa chọn sử dụng.
Bảng 1. Các yếu tố rủi ro thường gặp
TT

Nhóm vấn đề

1

Nguồn lực

2

Nguồn lực

3

Nguồn lực

4

Nhân lực

5

Nhân lực

6

Khách hàng

7

Khách hàng

8

Dữ liệu nghiên cứu

9

Dữ liệu nghiên cứu

10

Hệ thống

11

Hệ thống

12

Hệ thống

13

Hệ thống

14

Quản lý

15

Quản lý

16

Quản lý

17

Công nghệ

18

Công nghệ

19

Kinh nghiệm

Yếu tố rủi ro
Staff experience shortage
Nhân lực thiếu kinh nghiệm
Reliance on few key person
Phụ thuộc vào một số cá nhân
Schedule pressure
Áp lực thời gian
Low productivity
Năng suất kém
Lack of staff commitment
Thiếu sự cam kết của nhân viên
Lack of client support
Thiếu sự trợ giúp từ khách hàng
Lack of contact person competence
Thiếu đầu mối có năng lực
Lack of quantitative historical data
Thiếu dữ liệu lịch sử
Inaccurate cost estimating
Dự toán thiếu chính xác
Large and complex external interface
Giao diện bên ngoài lớn và phức tạp
Large and complex project
Dự án lớn và phức tạp
Unnecessary features
Tính năng không cần thiết
Creeping user requirement
Yêu cầu người dùng không rõ ràng
Incapable project management
Thiếu khả năng quản lý
Lack of senior management commitment
Thiếu sự cam kết của quản lý cấp trên
Lack of organization maturity
Thiếu tính chuyên nghiệp
Immature technology
Công nghệ chưa hoàn chỉnh
Inadequate configuration control
Thiếu kiểm soát cấu hình
Lack of experience with project environment
Thiếu kinh nghiệm với môi trường phát triển dự án

Xác suất
0.30
0.75
0.70
0.22
0.20
0.35
0.15
0.50
0.50
0.40
0.45
0.30
0.75
0.58
0.50
0.25
0.46
0.45
0.625

Nguyễn Ngọc Tuấn, Võ Thị Hường, Huỳnh Quyết Thắng

TT

Nhóm vấn đề

20

Kinh nghiệm

21

Công nghệ

22

Công nghệ

23

Công nghệ

24

Hệ thống

277

Yếu tố rủi ro
Lack of experience with project software
Thiếu kinh nghiệm sử dụng các phần mềm dự án
Excessive paperwork
Giấy tờ quá nhiều
Inaccurate metrics
Thang đo không chính xác
Excessive reliance on a single process
Quá phụ thuộc vào một tiến trình công việc nhất định
Unreliable subproject
Dự án con thiếu tin cậy

Xác suất
0.42
0.3
0.5
0.5
0.45

B. 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. BBN dựa trên định lý Bayes, được phát triển bởi Thomas Bayes, một nhà toán học thế kỷ XVIII, phát biểu dạng
luật đơn giản như sau [9]:

P( R | S ) 

P( S | R) P( R)
P( S )

(1)

Luật Bayes trên được hiểu là 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 bằng cách nhân niềm tin trước đó P(R) với niềm tin về khả năng P(S/R) xảy S nếu R
là đúng.
BBN bao gồm hai 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ị (qua một bảng xác suất có điều kiện của nút đó - NPT).
Do định lý Bayes dựa trên khái niệm xác suất có điều kiện, nên nó là lý thuyết toán học lý tưởng cho việc tính toán
mức độ ảnh hưởng của rủi ro. Hơn nữa chúng ta phải dự đoán các yếu tố bất định và tính chất rủi ro của chúng dựa trên
những giả định có điều kiện, nên xác suất Bayes và mạng Bayes chính là cách tiếp cận phù hợp để mô hình hóa mối quan
hệ giữa rủi ro và ảnh hưởng của chúng. Một số nghiên cứu cũng khẳng định có thể dùng xác suất và Mạng Bayes để phân
tích rủi ro dự án phần mềm [10] , cũng như dùng Mạng Bayes để mô hình hóa các yếu tố bất định và hỗ trợ ra quyết định
trong dự án [11].
Từ danh sách 24 yếu tố rủi ro, ta xây dựng được các mạng Bayes con và mạng Bayes tổng thể cho mô hình hóa rủi
ro trong dự án phấn mềm. Hình 1 là ví dụ mạng Bayes con của các yếu tố rủi ro ảnh hưởng đến lịch trình dự án phần mềm
(yếu tố rủi ro số 16, của nhóm vấn đề Quản lý - xem bảng 1). Hình 2 mô tả mạng Bayes tổng thể mô hình hóa rủi ro trong
dự án phần mềm.

Hình 1. Một mạng con Bayes 1 với yếu tố schedule_pressure

278

HƯỚNG TỚI MÔ HÌNH MẠNG BAYES ĐỂ ĐÁNH GIÁ RỦI RO TRONG LẬP LỊCH DỰ ÁN PHẦN MỀM

Hình 2. Mạng Bayes tổng thể

III. TÍNH TOÁN SỰ ẢNH HƯỞNG CỦA CÁC YẾU TỐ RỦI RO
Như đã trình bày ở phần II, mạng Bayes cho phép chúng ta gắn phân phối xác suất với mỗi nút riêng biệt. Phân
phối xác suất này có thể dựa vào ý kiến chuyên gia, dựa vào khảo sát, hoặc vào các phương pháp toán học. Thao tác này
được gọi là suy diễn Bayes như trong ví dụ ở Hình 3.
A. Suy diễn Bayes
Luật suy diễn trong mạng Bayes:
z

p(z)

y

p(y|z)

x

p(x|y)

Hình 3. Ví dụ về suy diễn Bayes

Hình 3 biểu diễn các sự kiện x, y, z là độc lập với nhau, x độc lập với z điều kiện y. Ta tính được p(x|z):

px | z    P( x | z  yi ) P( yi | z )
yi

  P( x | yi ) P( yi | z )

(2)

yi

Dựa vào mô hình mạng Bayes, nhóm tác giả xem xét một thuật toán giúp tính toán độ ảnh hưởng của các nhân tố
rủi ro, giúp cho người quản lý dự án có thể ước tính và đưa ra các quyết định phù hợp tới cho đội phát triển, nhằm mục
đích đưa dự án phần mềm hoàn thành đúng thời hạn.
x

y

z

Hình 4. Giải thuật áp dụng nhiều mạng Bayes kiểu dãy, ví dụ với ba nút: Mạng Bayes kiểu dãy đơn giản

Nguyễn Ngọc Tuấn, Võ Thị Hường, Huỳnh Quyết Thắng

279

Trong đó ở Hình 4:
x: rủi ro đang xét;
y: rủi ro được sinh ra trực tiếp từ rủi ro đang xét x;
z: rủi ro được sinh ra khi 2 rủi ro trước đó xảy ra.
P(y|x), P(z|xy): khả năng xảy ra của rủi ro khi các điều kiện đã xảy ra (phân theo các mức độ: + (thấp)
(p=0.3), ++ (trung bình) (p=0.6), +++(cao) (p=0.9)).
B. Thuật toán BRI đánh giá mức độ ảnh hưởng của các yếu tố rủi ro
Chúng tôi đề xuất thuật toán BRI (Bayes Risk-Impact) đánh giá mức độ ảnh hưởng của rủi ro:
Thuật toán BRI
* Đầu vào: Các yếu tố rủi ro và xác suất (Bảng 1)
* Đầu ra: Mức độ ảnh hưởng của yếu tố rủi ro tới khả năng hoàn thành của dự án phần mềm dưới dạng một
vector các giá trị số. Giá trị càng cao thì mức độ ảnh hưởng càng lớn.
* Thuật toán BRI đánh giá mức độ ảnh hưởng của các yếu tố rủi ro:
Bước 1. Thông qua các giá trị xác suất đã biết. Giả sử P(X|~parent(X)) = 0.4. Ta tính các xác suất của các nút
con trong từng mạng Bayes nhỏ.
Bước 2. Với mỗi node con, đệ quy tìm ImpactWeight(node_con).
Tìm các mạng Bayes bắt đầu bởi nút con đang xét trong danh sách mạng Bayes ban đầu. Tính
ImpactWeight(node_con) với giá trị xác suất đã tính được ở bước 1.
Nếu không tìm thấy, ImpactWeight(node_con) = P(node_con).
Bước 3. ImpactWeight(rủi_ro_đang_xét) = ∑ImpactWeight(node_con).
Bước 4. Cộng dồn giá trị các ImpactWeight(rủi_ro_đang_xét) vào vector mức độ ảnh hưởng.
Bước 5. Lặp lại thuật toán với các rủi ro khác.
IV. XÂY DỰNG CÔNG CỤ VÀ THỬ NGHIỆM
A. Xây dựng phần mềm
Mục đích của phần mềm là mô phỏng mô hình và thuật toán nêu trên, giúp nhà quản lý đánh giá được mức độ ảnh
hưởng của rủi ro tới khả năng hoàn thành dự án phần mềm khi đã biết trước xác suất xảy ra của rủi ro đó. Phần mềm được
xây dựng sử dụng ngôn ngữ lâp trình C#, thư viện MS .NET Framework 4.5 và môi trường tích hợp (IDE) là Visual
Studio 2012. Giao diện của phần mềm được thể hiện ở Hình 5. Tại các giai đoạn của dự án phần mềm, nhà quản lý và đội
dự án có thể đánh giá các rủi ro và xác suất xuất hiện của chúng, sử dụng cho đưa ra các quyết định trong công việc lập
lịch cũng như quản trị toàn bộ tiến trình dự án. Thông qua việc so sánh các số liệu, đội dự án sẽ đưa ra các quyết định tới
dự án phần mềm.
B. Thử nghiệm
Bộ dữ liệu thử nghiệm là dữ liệu của 2 dự án phần mềm thực và kết quả của nghiên cứu của A. K. T Hui và D. B.
Liu [3] được thể hiện trong Bảng 1. Kết quả thử nghiệm (tính toán mức độ ảnh hưởng của các yếu tố rủi ro) với bộ dữ liệu
này được tóm tắt ở Hình 6. Kết quả cho thấy mức độ ảnh hưởng của yếu tố thiếu kỹ năng quản lý (incapable project
management) là cao nhất.
Với 2 dự án thực tế, người quản trị và thư ký dự án này dựa vào kinh nghiệm thực tế của họ ở các dự án đó để giúp
nhóm tác giả ước lượng xác suất ban đầu của các yếu tố rủi ro. Dự án 1 là dự án về một game mạng xã hội, gồm 8 người
(1 quản trị, 1 tester, 5 developer và 1 designer). Dự án dự kiến trong 4.5 tháng nhưng kéo dài trong 10 tháng. Một số vấn
đề chính của dự án gặp phải là framework tự xây dựng lớn, phát sinh nhiều lỗi, công việc phát sinh nhiều, và khách hàng
phản hồi chậm. Dự án 2 là một dự án phần mềm cho một công ty viễn thông Nhật Bản. Dự án này dự kiến 5 tháng với 15
giai đoạn, nhưng thực tế cũng kéo dài 10 tháng như Dự án 1. Các vấn đề lớn nhất gặp phải là xác định yêu cầu khách hàng
(ở giai đoạn 1), đánh giá độ phức tạp của từng module để phân bổ nguồn lực và thời gian chuyển giao hướng dẫn khách
hàng lâu.
Cách thức thử nghiệm: thử nghiệm chung cho cả 3 bộ dữ liệu và thử nghiệm trong từng giai đoạn của từng dự án.
Kết quả thử nghiệm chung được thể hiện ở biểu đồ so sánh trong Hình 7. Kết quả thử nghiệm với cả 3 bộ dữ liệu cho thấy

280

HƯỚNG TỚI MÔ HÌNH MẠNG BAYES ĐỂ ĐÁNH GIÁ RỦI RO TRONG LẬP LỊCH DỰ ÁN PHẦN MỀM

sự tương đồng về mức độ ảnh hưởng (đều cao) của các yếu tố rủi ro (ví dụ thiếu kỹ năng quản lý, thiếu sự trợ giúp từ
khách hàng, hay quá phụ thuộc vào một tiến trình công việc nhất định...).
Với dữ liệu của Dự án 2: do dự án tổ chức rõ ràng ngay từ đầu theo từng giai đoạn, nhóm tác giả muốn đi sâu vào
phân tích độ ảnh hưởng của các yếu tố rủi ro trong từng giai đoạn của dự án. Nhóm tác giả đã được quản trị dự án cung
cấp thông tin dự tính/ đánh giá về các rủi ro có thể xảy ra trong một số giai đoạn như trong Bảng 2. Đội dự án cũng đánh
giá cao (về mặt định tính) mức độ ảnh hưởng của các yếu tố thiếu kỹ năng quản lý, thiếu sự trợ giúp từ khách hàng.

Hình 5. Giao diện thử nghiệm 1

Hình 6. Kết quả thử nghiệm 1
Kết quả chạy phần mềm với giai đoạn Xác định yêu cầu cho thấy rõ hơn: đối với giai đoạn này, mức độ ảnh hưởng rủi ro lớn
nhất đó là thiếu khả năng quản lý, điều này đòi hỏi đưa ra chiến lược là nâng cao chất lượng quản lý; cần rõ ràng,
cụ thể cam kết đối với người quản lý; không để xảy ra lỗi trong khi lập các yêu cầu quản lý và xác định chính xác yêu cầu
của người dùng

Nguyễn Ngọc Tuấn, Võ Thị Hường, Huỳnh Quyết Thắng

281

Đối với giai đoạn Thiết kế phần mềm, mức độ ảnh hưởng rủi ro lớn nhất đó là công nghệ chưa hoàn chỉnh (Hình 9), điều này
đòi hỏi đưa ra chiến lược là tránh các rủi ro khi xử lý các phương pháp; giảm thiểu rủi ro về áp lực tiến độ. Kết quả này phù hợp với
những gì diễn ra trong thực tế của Dự án 2.

Hình 7. Kết quả 3 thử nghiệm
Bảng 2. Các yếu tố rủi ro xảy ra trong từng giai đoạn
Giai đoạn
Xác định yêu cầu
Xác định yêu cầu
Xác định yêu cầu
Xác định yêu cầu
Thiết kế phần mềm
Thiết kế phần mềm
Thiết kế phần mềm

Những rủi ro có thể xảy ra
Xác định yêu cầu không rõ ràng
Thiếu khả năng quản lý
Thiếu sự trợ giúp của khách hàng
Nhân lực thiếu kinh nghiệm
Kỹ sư thiết kế chưa có kinh nghiệm,
phải chỉnh sửa nhiều lần
Công nghệ chưa hoàn chỉnh
Đặc điểm không cần thiết

Mức độ ảnh hưởng
(Cao, TB, Thấp)
Cao
Cao
Cao
Cao

Xác suất xảy ra
50%
10%
20%
40%

Cao

20%

Trung bình
Trung bình

10%
99%

Hình 8. Kết quả thử nghiệm với giai đoạn Thiết kế phần mềm

Dựa vào vector mức độ ảnh hưởng của các rủi ro trong từng giai đoạn dự án và tổng thể dự án, có thể nhận thấy rủi
ro về khả năng quản lý của người quản lý ảnh hưởng nhiều nhất đến khả năng hoàn thành dự án đúng hạn cũng như là
thành công của dự án. Dự án càng lớn thì càng phức tạp và phát sinh nhiều yếu tố rủi ro cần năng lực, kinh nghiệm và khả
năng càng cao của người quản trị dự án. Tiếp sau đó là các yếu tố như thiếu sự cam kết và hỗ trợ từ bên phía khách hàng,
thiếu tính chuyên nghiệp, quá mức phụ thuộc vào một tiến trình,… Kết quả này khẳng định nhu cầu về công cụ hỗ trợ đội
dự án để ước lượng, đánh giá và kịp thời điều chỉnh. Quản trị dự án cần phải quan tâm nhiều hơn đến yếu tố rủi ro nào có
mức độ ảnh hưởng lớn nhất đến dự án để đảm bảo dự án được tiến hành thuận lợi.
V. KẾT LUẬN
Công cụ và kết quả thử nghiệm cho thấy giải thuật đánh giá chính xác được ảnh hưởng của các yếu tố rủi ro lên
lịch trình dự án. Mô hình, giải thuật và công cụ được đề xuất, ngoài việc lượng hóa rủi ro và hậu quả của chúng, còn có
thể giúp xác định các vấn đề và các rủi ro tiềm tàng ở giai đoạn đầu tiên của dự án - lập lịch và lập kế hoạch dự án. Nhóm

HƯỚNG TỚI MÔ HÌNH MẠNG BAYES ĐỂ ĐÁNH GIÁ RỦI RO TRONG LẬP LỊCH DỰ ÁN PHẦN MỀM

282

tác giả cũng khẳng định là nếu ta có thể xác định và kiểm soát các vấn đề từ những pha/ giai đoạn ban đầu của dự án thì
chúng ta có thể tăng đáng kể khả năng thành công của dự án. Mặc dù mô hình Mạng Bayes nhìn chung đã cung cấp một
bức tranh chính xác về những nguy cơ của dự án phần mềm điển hình ở giai đoạn đầu, nó vẫn cần phát triển hơn nữa đặc
biệt khi dùng nó cho những ngành đặc thù khác hoặc ở các giai đoạn sau của dự án phát triển phần mềm.
Vì vậy, những nghiên cứu tiếp theo về vấn đề này có thể tập trung triển khai theo hướng phân tích và tìm hiểu sâu
hơn nữa về ứng dụng kỹ thuật mạng Bayes vào mô hình hóa rủi ro trong lập lịch dự án bằng cách kết hợp Mạng Bayes với
các kỹ thuật lập lịch dự án khác nhau (CPM, PERT, mô phỏng...), sau đó đánh giá và đưa ra đề xuất tốt hơn với đội dự án.
Nhóm tác giả cũng tiến hành thu thập và chạy thuật toán với nhiều bộ dữ liệu thực nghiệm hơn, để từ đó có đánh giá và
phân tích tốt hơn cho thuật toán. Một khảo sát chuyên gia cũng sẽ được thực hiện để cùng với kết quả thử nghiệm của
công cụ sẽ rút ra được danh sách các yếu tố rủi ro phù hợp nhất với từng loại phần mềm được phát triển cũng như từng
phương pháp phát triển phần mềm khác nhau. Nhóm tác giả cũng sẽ nghiên cứu kỹ hơn và tích hợp nhiều hơn các nguồn
rủi ro vào quá trình lập lịch cũng như cách thức đối phó với các dạng yếu tố không lường trước khác (như các unknown
unknown).
Hướng phát triển cao nhất của đề tài đó là quản trị các hành động và trợ giúp quyết định cho quản lý dự án khi dự
án phát sinh vấn đề về lịch trình (từng giai đoạn bị chậm hoặc cả dự án sẽ chậm kế hoạch) bằng cách đánh giá nhiều kịch
bản lịch trình ngay trong quá trình lập lịch dự án.
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, 1991.
[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] V. Khodakarami, Applying Bayesian Networks to model uncertainty in project scheduling, PhD dissertation,
Queen Mary, University of London, 2009. https://qmro.qmul.ac.uk/xmlui/handle/123456789/578
[5] PMI, A Guide to the Project Management Body of Knowledge (PMBOK Guide), Project Management Institute,
2013. https://www.pmi.org/pmbok-guide-standards/foundational/pmbok
[6] John Bartlett, “PRAM: Project Risk Analysis and Management Guide”, Association for Project Management
(APM) Publishing Limited, 2004.
[7] London Institute of Civil Engineering and the Faculty and Institute of Actuaries, “RAMP: Risk Analysis and
Management for Projects”, Thomas Telford Publisher, 2005.
[8] D. Houston, “Survey on potential effects of major development risk factors”, Arizona State University Research
Project, 2000.
[9] 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.
[10] Y. Hu et al., “Software Project Risk Analysis Using Bayesian Networks with Causality Constraints”, Decision
Support Systems, vol. 56, pp. 439-449, 2013.
[11] N. Fenton and M. Neil, “Risk Assessment and Decision Analysis with Bayesian Networks”, Reading book, CRC
Press, 2013.

TOWARDS A BAYESIAN NETWORK MODEL TO EVALUATE UNCERTAINTY IN
SOFTWARE PROJECT SCHEDULING
Nguyen Ngoc Tuan, Vo Thi Huong, Huynh Quyet Thang
ABSTRACT: Risk Management has become crutial in software project management. This paper aims at providing an effective
mathematical model and proves that software teams can rely on the model to predict and quantify uncertainty and their impacts on
the success of the project, right from the early phases of the project. From the model, an algorithm and a tool can be developed to
help software teams understand and evaluate possible risks. Based on the calculation, the team can make appropriate decisions and
take actions accordingly to mitigate risks, and the project manager can better keep track of the project budget and schedule. This
research proposes the BRI algorithm to calculate risks and impacts in a Bayesian Netork model. A software tool has also been built
for experiments on the proposed model and algorithm.

View publication stats