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

Gửi bởi: 2020-11-23 10:50:37 | Được cập nhật: 2021-02-20 20:07:11 Kiểu file: PDF | Lượt xem: 301 | Lượt Download: 2

Nội dung tài liệu

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


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