Tải bản đầy đủ (.pdf) (155 trang)

Mô hình đánh giá độ tin cậy hệ thống phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.56 MB, 155 trang )

...

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Nguyễn Hùng Cường

MƠ HÌNH ĐÁNH GIÁ ĐỘ TIN CẬY
HỆ THỐNG PHẦN MỀM

Chuyên ngành: Kỹ thuật phần mềm
Mã số: 62480103

LUẬN ÁN TIẾN SĨ KỸ THUẬT PHẦN MỀM

NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. HUỲNH QUYẾT THẮNG

Hà Nội - 2015


LỜI CAM ĐOAN
Tôi xin cam đoan tất cả các nội dung trong luận án "Mơ hình đánh giá độ tin cậy hệ
thống phần mềm" là cơng trình nghiên cứu của riêng tôi. Các số liệu, kết quả trong
luận án là trung thực, trích dẫn đầy đủ và chưa từng được ai cơng bố trong bất kỳ
cơng trình nào khác.
Người hướng dẫn khoa học

Hà Nội, ngày 24 tháng 10 năm 2015
Tác giả luận án


PGS.TS Huỳnh Quyết Thắng

Nguyễn Hùng Cường

ii


LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn Thầy hướng dẫn PGS.TS Huỳnh
Quyết Thắng. Thầy là người đã định hướng, chỉ đạo, giúp đỡ em trong toàn bộ quá
trình thực hiện luận án này. Là người đã hướng dẫn em từ khi học Cao học, biết
được những lợi thế cũng như những hạn chế của học viên, Thầy đã hướng dẫn em
trong việc lựa chọn hướng đi, tạo dựng cơ hội để em có thể học tập, nghiên cứu
nhằm khẳng định bản thân thơng qua việc hồn thành được luận án này.
Em xin gửi lời cảm ơn đến các thầy cô phản biện, các thầy cô trong hội đồng
các cấp cũng như những nhà khoa học độc lập đã có những đóng góp, góp ý giúp đỡ
cho quá trình làm việc của em.
Em xin chân thành cảm ơn các thầy cô, anh chị là lãnh đạo và cán bộ giảng
viên tại Viện Công nghệ Thông tin và Truyền thông, đặc biệt là tại Bộ môn Công
nghệ phần mềm; Viện Đào tạo Sau Đại học thuộc Trường Đại học Bách Khoa Hà
Nội đã giúp đỡ em trong quá trình thực hiện luận án. Sự hỗ trợ của mọi người thực
sự đã giúp quá trình học tập và nghiên cứu của em được nhiều thuận lợi.
Tôi xin gửi lời cảm ơn đến Ban Giám hiệu, tập thể trường Đại học Hùng
Vương; lãnh đạo và tập thể đồng nghiệp khoa Tốn - Cơng nghệ. Nhà trường và
khoa đã hỗ trợ, tạo điều kiện cho tơi trong q trình làm việc cũng như học tập để
tơi có thể đạt được những kết quả ngày hôm nay.
Cuối cùng, con xin gửi lời cảm ơn đến gia đình, những người thân yêu và
bạn bè đã đồng hành, chia sẻ và giúp đỡ rất nhiều về tình cảm, vật chất trong quá
trình học tập, lao động và trưởng thành của bản thân.
Mặc dù có nhiều cố gắng và nỗ lực trong quá trình làm việc nhưng do thời

gian và kiến thức còn nhiều hạn chế, luận án có thể cịn nhiều thiếu sót. Tác giả rất
mong nhận được sự đóng góp và góp ý quý giá của mọi người để hoàn thiện nội
dung khoa học của luận án cũng như những hướng đi mở rộng sau này trong con
đường học tập và làm việc tiếp theo.

iii


MỤC LỤC
LỜI CAM ĐOAN ........................................................................................... II
LỜI CẢM ƠN ............................................................................................... III
MỤC LỤC ......................................................................................................IV
DANH MỤC CÁC BẢNG ............................................................................. X
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ......................................................XI
DANH MỤC THUẬT NGỮ TIẾNG ANH ............................................. XIII
MỞ ĐẦU .................................................................................................... XIV
1. Lý do chọn đề tài............................................................................................. xiv
2. Mục tiêu nghiên cứu của luận án .................................................................. xiv
3. Đối tượng và phạm vi nghiên cứu .................................................................. xv
4. Phương pháp nghiên cứu ................................................................................ xv
5. Nội dung luận án .............................................................................................. xv
6. Kết quả nghiên cứu, đóng góp khoa học của luận án ................................ xvii

CHƯƠNG 1.

TỔNG QUAN ....................................................................... 1

1.1. Các kiến thức tốn học cơ sở sử dụng trong mơ hình độ tin cậy .................. 1
1.1.1. Phương pháp hợp lý cực đại ước lượng tham số .......................................... 1
1.1.2. Tiến trình Markov ......................................................................................... 2

1.1.3. Hệ phương trình vi phân chủ Chapman-Kolmogorov .................................. 2
1.1.3.1. Hệ phương trình Chapman-Kolmogorov ............................................. 2
1.1.3.2. Hệ phương trình vi phân chủ Chapman-Kolmogorov ......................... 3
1.1.4. Tiến trình Poisson ......................................................................................... 4
1.2. Độ tin cậy phần mềm ......................................................................................... 5
1.2.1. Khái niệm ..................................................................................................... 5
1.2.2. Lịch sử q trình nghiên cứu về mơ hình độ tin cậy phần mềm .................. 6
1.2.3. Một số khái niệm liên quan trong mơ hình độ tin cậy phần mềm ................ 7
1.2.4. Phân nhóm các mơ hình đánh giá độ tin cậy phần mềm .............................. 8
1.2.4.1. Phương pháp phân nhóm của Phạm Hồng ......................................... 8
1.2.4.2. Phương pháp phân nhóm của Lyu ....................................................... 9
1.2.4.3. Phương pháp phân nhóm của Chengjie ............................................... 9
1.2.4.4. Phương pháp phân nhóm theo mơ hình cây phân cấp ......................... 9
iv


1.3. Các hướng tiếp cận đánh giá độ tin cậy hệ thống phần mềm ..................... 10
1.3.1. Nhóm mơ hình đánh giá độ tin cậy dựa trên phân tích tài nguyên dự án phát
triển phần mềm ..................................................................................................... 11
1.3.1.1. Độ đo Halstead................................................................................... 11
1.3.1.2. Độ đo độ phức tạp xoay vòng của McCabe ....................................... 12
1.3.2. Nhóm mơ hình đánh giá độ tin cậy dựa trên phân tích đặc tính của q
trình phát hiện lỗi trong quá trình phát triển phần mềm ...................................... 13
1.3.2.1. Mơ hình hạt giống lỗi của Mills ........................................................ 14
1.3.2.2. Mơ hình Cai ....................................................................................... 14
1.3.2.3. Mơ hình Tohma ................................................................................. 16
1.4. Tổng hợp các nghiên cứu liên quan hiện có .................................................. 19
1.4.1. Tiến trình Markov mơ hình tiến trình gỡ lỗi phần mềm............................. 19
1.4.1.1. Giả thiết chung của các mơ hình ........................................................ 20
1.4.1.2. Mơ hình Jelinski-Moranda ................................................................. 20

1.4.1.3. Mơ hình Schick-Wolverton ............................................................... 21
1.4.1.4. Mơ hình Schick-Wolverton cải tiến ................................................... 22
1.4.1.5. Mơ hình Goel-Okumoto Markov ....................................................... 22
1.4.1.6. Mơ hình tỉ lệ xác định của Moranda .................................................. 22
1.4.1.7. Đánh giá nhận xét các kết quả nghiên cứu ........................................ 23
1.4.2. Tiến trình Poisson khơng đồng nhất mơ hình độ tin cậy phần mềm .......... 23
1.4.2.1. Xây dựng hệ phương trình hợp lý ước lượng tham số của mơ hình .. 24
1.4.2.2. Nhóm mơ hình tỉ lệ ............................................................................ 26
1.4.2.3. Nhóm mơ hình sử dụng hàm hình dạng S ......................................... 29
1.4.2.4. Nhóm mơ hình có chữa lỗi mang tính khơng hồn hảo ..................... 31
1.4.2.5. Nhóm mơ hình chữa lỗi mang tính khơng hồn hảo hình dạng S ..... 32
1.4.2.6. Đánh giá nhận xét các kết quả nghiên cứu ........................................ 35
1.5. Các nhiệm vụ nghiên cứu trong luận án ....................................................... 35

CHƯƠNG 2. MƠ HÌNH HĨA ĐỘ TIN CẬY PHẦN MỀM DỰA
TRÊN TIẾN TRÌNH MARKOV ................................................................. 37
2.1. Tiến trình Markov mơ hình hóa tiến trình hoạt động của phần mềm ....... 37
2.1.1. Kịch bản sử dụng tiến trình Markov đánh giá độ tin cậy ........................... 37
v


2.1.1.1. Nguyên lý áp dụng tiến trình Markov................................................ 37
2.1.1.2. Quy trình đánh giá độ tin cậy ............................................................ 38
2.1.2. Cài đặt thực nghiệm .................................................................................... 39
2.1.2.1. Cài đặt thử nghiệm 1 .......................................................................... 39
2.1.2.2. Cài đặt thử nghiệm 2 .......................................................................... 41
2.1.2.3. Cài đặt thử nghiệm 3 .......................................................................... 43
2.2. Tiến trình Markov mơ hình hóa tiến trình trẻ hóa của phần mềm ............ 44
2.2.1. Sự trẻ hóa của hệ thống phần mềm ............................................................ 44
2.2.2. Phương thức đánh giá độ tin cậy, độ sẵn sàng và độ an tồn của hệ thống

phần mềm trẻ hóa ................................................................................................. 45
2.2.2.1. Mơ hình hóa hệ thống ........................................................................ 45
2.2.2.2. Các độ đo chất lượng của hệ thống phần mềm .................................. 47
2.2.3. Tính tốn các tham số của mơ hình ............................................................ 48
2.2.3.1. Tính tốn với điều khoản I ................................................................. 48
2.2.3.2. Tính toán với điều khoản II ............................................................... 50
2.2.4. Cài đặt thực nghiệm .................................................................................... 52
2.2.4.1. Kết quả mô phỏng 1 ........................................................................... 52
2.2.4.2. Kết quả mô phỏng 2 ........................................................................... 56
2.2.4.3. Kết quả thực nghiệm trên hệ thống thi lập trình trực tuyến BKOJ.... 58
2.3. Kết chương ....................................................................................................... 62

CHƯƠNG 3. MƠ HÌNH HĨA ĐỘ TIN CẬY PHẦN MỀM DỰA
TRÊN TIẾN TRÌNH POISSON KHƠNG ĐỒNG NHẤT ........................ 64
3.1. Xây dựng phương thức so sánh các mơ hình thuộc nhóm sử dụng tiến trình
Poisson khơng đồng nhất và thử nghiệm.............................................................. 64
3.1.1. Các hàm độ đo tiêu chuẩn để so sánh ......................................................... 64
3.1.2. Phương thức tính tốn độ đo tổng qt ...................................................... 65
3.1.2.1. Tính tốn các giá trị của mỗi độ đo tiêu chuẩn cho các mô hình ...... 66
3.1.2.2. Tính tốn trọng số cho mỗi độ đo tiêu chuẩn .................................... 66
3.1.2.3. Tính giá trị đã được tính đến trọng số cho mỗi độ đo tiêu chuẩn ...... 67
3.1.2.4. Tính giá trị độ đo tổng hợp ................................................................ 67
3.1.3. Cài đặt thực nghiệm .................................................................................... 67
3.1.3.1. Các mơ hình được thực nghiệm ......................................................... 68
vi


3.1.3.2. Thực nghiệm trên dữ liệu phần mềm chiến thuật hải quân Hoa Kì ... 68
3.1.3.3. Thực nghiệm trên dữ liệu về hệ thống thao tác dữ liệu của IBM ...... 69
3.1.3.4. Sự khác biệt giữa xếp hạng mơ hình theo khả năng dự đoán và theo

độ đo tổng hợp ................................................................................................. 69
3.2. Đánh giá khả năng áp dụng hàm hình dạng S tổng qt cho mơ hình độ tin
cậy phần mềm dựa trên tiến trình Poisson khơng đồng nhất ............................ 71
3.2.1. Hàm hình dạng S và ứng dụng trong mơ hình hóa độ tin cậy phần mềm dựa
trên tiến trình Poisson khơng đồng nhất............................................................... 71
3.2.1.1. Các mơ hình độ tin cậy phần mềm dựa trên tiến trình Poisson khơng
đồng nhất có hàm tỉ lệ phát hiện lỗi hình dạng S............................................. 71
3.2.1.2. Đề xuất hàm tỷ lệ phát hiện lỗi có hình dạng S tổng quát ................. 72
3.2.2. Những tồn tại của các độ tin cậy phần mềm dựa trên tiến trình Poisson
khơng đồng nhất có hàm tỉ lệ phát hiện lỗi hình dạng S ...................................... 73
3.2.2.1. Tính tăng của các hàm biểu diễn tổng số lỗi của các mơ hình sử dụng
hàm tỉ lệ phát hiện lỗi hình dạng S .................................................................. 73
3.2.2.2. Khó khăn tính tốn tốn học sơ cấp khi xây dựng mơ hình mới ....... 74
3.2.3. Tính tốn tốn học cho mơ hình độ tin cậy phần mềm NHPP cải tiến ...... 75
3.2.3.1. Các tính tốn tổng qt ...................................................................... 75
3.2.3.2. Hàm biểu diễn tổng số lỗi là hằng số ................................................. 76
3.2.3.3. Hàm biểu diễn tổng số lỗi theo thời gian ........................................... 77
3.2.4. Các tính tốn vi phân của hai mơ hình ....................................................... 78
3.2.4.1. Mơ hình thứ nhất................................................................................ 78
3.2.4.2. Mơ hình thứ hai.................................................................................. 79
3.2.5. Cài đặt thực nghiệm .................................................................................... 80
3.2.5.1. Môi trường cài đặt thực nghiệm ........................................................ 80
3.2.5.2. Cài đặt tính tốn hai mơ hình trên ngơn ngữ Matlab ......................... 80
3.2.5.3. Kết quả thực nghiệm ước lượng tham số mơ hình thứ nhất .............. 81
3.2.5.4. Kết quả thực nghiệm ước lượng tham số mơ hình thứ hai ................ 81
3.3. Kết chương ....................................................................................................... 82

CHƯƠNG 4. MỘT SỐ ỨNG DỤNG THỰC TẾ LIÊN QUAN TỚI MƠ
HÌNH ĐỘ TIN CẬY PHẦN MỀM .............................................................. 84
4.1. Xây dựng một số công cụ phần mềm hỗ trợ mơ hình hóa độ tin cậy ......... 85

vii


4.1.1. Phần mềm dự đốn độ tin cậy theo mơ hình PNZ cho phần mềm xây dựng
theo kiến trúc hướng thành phần .......................................................................... 85
4.1.1.1. Kịch bản dự đoán độ tin cậy của hệ thống được xây dựng theo kiến
trúc hướng thành phần ..................................................................................... 85
4.1.1.2. Cấu trúc phần mềm ............................................................................ 86
4.1.1.3. Hướng dẫn sử dụng phần mềm .......................................................... 87
4.1.1.4. Một vài trường hợp thử nghiệm ......................................................... 88
4.1.2. Phần mềm cài đặt các mơ hình thuộc các nhóm dựa trên tiến trình Markov
và tiến trình Poisson khơng đồng nhất ................................................................. 91
4.1.2.1. Biểu đồ lớp và giao diện chương trình .............................................. 92
4.1.2.2. Cách thức sử dụng phần mềm............................................................ 93
4.1.3. Các địa chỉ công bố các phần mềm đã xây dựng ....................................... 94
4.2. Ứng dụng độ tin cậy trong chính sách phát hành phần mềm tối ưu .......... 94
4.2.1. Tính tốn chi phí phát hành sử dụng yếu tố rủi ro dựa trên mô hình PNZ 94
4.2.1.1. Mơ hình PNZ và tham số của mơ hình dựa trên dữ liệu NTDS ........ 94
4.2.1.2. Chi phí phát hành sử dụng yếu tố rủi ro dựa trên mơ hình PNZ ....... 95
4.2.2. Cài đặt thực nghiệm .................................................................................... 96
4.2.2.1. Tính tốn chi phí phát hành tối ưu với chi phí thực tại Hoa Kì ......... 96
4.2.2.2. Tính tốn chi phí phát hành tối ưu với chi phí thực tại Việt Nam ..... 97
4.2.2.3. Đánh giá ảnh hưởng của các tham số lên giá trị của 𝐓 ∗ ................... 99
4.3. Kỹ thuật tối ưu mã nguồn áp dụng tập luật trên cây cú pháp trừu tượng và
đánh giá ảnh hưởng đến độ tin cậy phần mềm .................................................. 102
4.3.1. Các kĩ thuật cơ bản trong phát triển ứng dụng Java ................................. 102
4.3.1.1. Tối ưu mã nguồn .............................................................................. 102
4.3.1.2. Lập trình an tồn .............................................................................. 103
4.3.1.3. Cây cú pháp trừu tượng ................................................................... 103
4.3.2. Luật và việc áp dụng trên cây cú pháp trừu tượng ................................... 104

4.3.2.1. Xây dựng các luật ............................................................................ 105
4.3.2.2. Sử dụng luật phát hiện các thành phần tiềm năng trong mã nguồn . 105
4.3.2.3. Sử dụng các luật để thay đổi mã nguồn ........................................... 105
4.3.3. Cài đặt thực nghiệm .................................................................................. 106
4.3.3.1. Mô tả môi trường ............................................................................. 106
viii


4.3.3.2. Mô tả cấu trúc của Eclipse plug-in .................................................. 106
4.3.3.3. Kết quả thực nghiệm ........................................................................ 107
4.4. Kết chương ..................................................................................................... 109

KẾT LUẬN VÀ KIẾN NGHỊ .................................................................... 111
Kết luận ................................................................................................................. 111
Đóng góp khoa học của luận án........................................................................... 112
Định hướng phát triển.......................................................................................... 113

TÀI LIỆU THAM KHẢO .......................................................................... 114
DANH MỤC CÁC CƠNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN .... 123
PHỤ LỤC ..................................................................................................... 124
Phụ lục A.

Cài đặt tính tốn hai mơ hình trên ngơn ngữ Matlab ................. 124

A.1. Mơ hình thứ nhất ...................................................................................... 124
A.2. Mơ hình thứ hai ........................................................................................ 126
Phụ lục B. Các tập dữ liệu được dùng để phân tích các mơ hình thuộc nhóm
dựa trên tiến trình Poisson khơng đồng nhất .................................................... 130
B.1. Gói dữ liệu kiểm thử online của Ohba (#1) .............................................. 130
B.2. Hệ thống truyền thơng online của Phạm Hồng (#2) ............................... 130

B.3. Tập dữ liệu của Misra (#3) ....................................................................... 131
B.4. Hệ thống dữ liệu chiến thuật Hải quân Hoa Kỳ của Goel (#4) ................ 131
B.5. Dữ liệu về dự án phần mềm của công ty Tandem (#5) ............................ 132
B.6. Gói dữ liệu phần mềm online phát triển bởi IBM (#6) ............................ 133
B.7. Dự án hệ thống T của AT&T của Ehrlich (#7) ........................................ 133
B.8. Dữ liệu từ hệ thống điều khiển thời gian thực của Tohma (#8) ............... 133
B.9. Dữ liệu từ hệ thống điều khiển thời gian thực của Lyu (#9) .................... 135
B.10. Dữ liệu điều khiển và ra lệnh thời gian thực của Musa (#10) .................. 136
B.11. Dữ liệu kiểm thử hệ thống truyền thông của Zhang (#11) ....................... 136

ix


DANH MỤC CÁC BẢNG
Bảng 0.1. Cấu trúc luận án ..................................................................................... xvi
Bảng 1.1. Độ phức tạp McCabe của một số cấu trúc cơ bản .................................. 12
Bảng 1.2. Các kí hiệu sử dụng trong nhóm mơ hình Poisson .................................. 24
Bảng 2.1. Thơng tin về cuộc thi ảo triển khai trên BKOJ ........................................ 60
Bảng 3.1. Tham số của các mơ hình với dữ liệu NTDS ........................................... 68
Bảng 3.2. Giá trị độ đo tiêu chuẩn của 6 mơ hình với dữ liệu NTDS ...................... 68
Bảng 3.3. Giá trị độ đo tổng hợp của 6 mơ hình với dữ liệu NTDS ........................ 69
Bảng 3.4. Tham số các mơ hình với dữ liệu của Ohba ............................................ 69
Bảng 3.5. Xếp hạng khả năng dự đoán của các mơ hình......................................... 70
Bảng 4.1. Các kí hiệu trong mơ hình tính tốn chi phí phát hành tối ưu ................ 95
Bảng 4.2. Thời gian chạy của các phương thức của BKProfile ............................ 109
Bảng B.1. Gói dữ liệu kiểm thử online của Ohba (1980) (#1) .............................. 130
Bảng B.2. Hệ thống truyền thông online của Pham (2000) (#2) ........................... 131
Bảng B.3. Tập dữ liệu của Misra (1983) (#3) ....................................................... 131
Bảng B.4. Hệ thống dữ liệu chiến thuật Hải quân Hoa Kỳ của Goel (1979) (#4) 132
Bảng B.5. Dữ liệu về dự án phần mềm của công ti Tandem (1996) (#5) .............. 132

Bảng B.6. Gói dữ liệu phần mềm online phát triển bởi IBM (1984)(#6) .............. 133
Bảng B.7. Dự án hệ thống T của AT&T của Ehrlich (1993) (#7) ......................... 133
Bảng B.8. Dữ liệu từ hệ thống điều khiển thời gian thực của Tohma (1991) (#8) 134
Bảng B.9. Dữ liệu từ hệ thống điều khiển thời gian thực của Lyu (1996) (#9) ..... 135
Bảng B.10. Dữ liệu điều khiển và ra lệnh thời gian thực của Musa (1987)(#10) . 136
Bảng B.11. Dữ liệu kiểm thử hệ thống truyền thông của Zhang (2002) (#11) ...... 136

x


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1. Phân loại các mơ hình độ tin cậy phần mềm theo cây phân cấp ............ 10
Hình 1.2. Tiến trình Markov của mơ hình Jelinski Moranda .................................. 20
Hình 1.3. Đồ thị hàm sigmoid (hàm logistic chuẩn)................................................ 30
Hình 2.1. Tiến trình Markov của thử nghiệm 1 ....................................................... 40
Hình 2.2. Mơ hình hóa hệ thống của thử nghiệm 2 ................................................. 41
Hình 2.3. Tiến trình Markov của thử nghiệm 2 ....................................................... 42
Hình 2.4. Tiến trình Markov của thử nghiệm 3 ....................................................... 43
Hình 2.5. Mơ hình trạng thái của hệ thống trẻ hóa ................................................. 45
Hình 2.6. Các trạng thái khi thực hiện trẻ hóa ........................................................ 46
Hình 2.7. Tiến trình Markov với 𝑡 ≤ 𝛿 .................................................................... 49
Hình 2.8. Tiến trình Markov với 𝑡 > 𝛿 .................................................................... 51
Hình 2.9. Độ sẵn sàng dưới điều khoản I ................................................................ 53
Hình 2.10. Độ sẵn sàng dưới điều khoản II ............................................................. 53
Hình 2.11. Độ an toàn dưới điều khoản I với 𝛾𝑟 = 0.55 ........................................ 54
Hình 2.12. Độ an tồn dưới điều khoản I khi 𝛾𝑟 thay đổi ....................................... 54
Hình 2.13. Độ an tồn dưới điều khoản II khi 𝛾𝑟 thay đổi...................................... 55
Hình 2.14. Độ tin cậy dưới điều khoản I và II khi 𝛾𝑟 = 0.55 ................................. 55
Hình 2.15. Độ sẵn sàng dưới hai điều khoản khi 𝛼 thay đổi ................................... 56
Hình 2.16. Độ an toàn dưới hai điều khoản khi 𝛼 thay đổi ..................................... 57

Hình 2.17. Độ tin cậy dưới hai điều khoản khi 𝛼 thay đổi ...................................... 58
Hình 2.18. Sơ đồ khối của hệ thống BKOJ .............................................................. 59
Hình 2.19. Triển khai BKOJ trên hệ thống BKCloud .............................................. 59
Hình 2.20. Độ sẵn sàng của BKOJ dưới điều khoản I ............................................ 61
Hình 2.21. Độ an toàn của BKOJ dưới điều khoản I .............................................. 61
Hình 2.22. Độ tin cậy của BKOJ dưới điều khoản I ................................................ 61
Hình 3.1. Hình dạng của hàm hình dạng S tổng quát với 𝑚 = 0.05 và 𝑚 = 0.7 .. 72
Hình 3.2. Tính tăng của một số hàm biểu diễn tổng số lỗi của hệ thống ................ 74
Hình 4.1. Kịch bản dự đốn độ tin cậy phần mềm .................................................. 86
Hình 4.2. Biểu đồ lớp của phần mềm dự đốn độ tin cậy ....................................... 87
Hình 4.3. Giao diện sử dụng của phần mềm ........................................................... 88
Hình 4.4. Kiểm tra tính xác thực của file đầu vào WebScan.xml ............................ 88
Hình 4.5. Kiểm tra tính khơng xác thực của file đầu vào WebScan.xml ................. 89
xi


Hình 4.6. Tính tốn giá trị dự đốn độ tin cậy hệ thống WebScan ......................... 89
Hình 4.7. Kiểm tra tính xác thực của file đầu vào ReportingService.xml ............... 90
Hình 4.8. Kiểm tra tính khơng xác thực của file đầu vào ReportingService.xml .... 90
Hình 4.9. Tính tốn giá trị dự đốn độ tin cậy hệ thống ReportingService ............ 91
Hình 4.10. Biểu đồ lớp của phần mềm Software Reliability Evaluator .................. 92
Hình 4.11. Giao diện phần mềm Software Reliability Evaluator ............................ 93
Hình 4.12. Giá trị của 𝐸[𝑇] theo 𝑇 với bộ tham số 1# bắt đầu từ ngày thứ 1 ........ 97
Hình 4.13. Giá trị của 𝐸[𝑇] theo 𝑇 với bộ tham số 1# trong các ngày 145-165 .... 97
Hình 4.14. Giá trị của 𝐸[𝑇] theo 𝑇 với bộ tham số 2# bắt đầu từ ngày thứ 1 ........ 98
Hình 4.15. Giá trị của 𝐸[𝑇] theo 𝑇 với bộ tham số 2# trong các ngày 178-188 .... 99
Hình 4.16. Giá trị của 𝑇 ∗ và 𝐸[𝑇] với bộ tham số 4#, 𝑘2 thay đổi ........................ 99
Hình 4.17. Giá trị của 𝑇 ∗ và 𝐸[𝑇] với bộ tham số 5#, 𝑘3 thay đổi ...................... 100
Hình 4.18. Giá trị của 𝑇 ∗ và 𝐸[𝑇] với bộ tham số 6#, 𝜇𝑌 thay đổi ..................... 101
Hình 4.19. Giá trị của 𝑇 ∗ và 𝐸[𝑇] với bộ tham số 7#, 𝑥 thay đổi ........................ 101

Hình 4.20. Cây cú pháp trừu tượng của hàm cài đặt thuật toán Euclide.............. 104
Hình 4.21. Biểu đồ luồng dữ liệu của cơng cụ Eclipse plug-in ............................. 107
Hình 4.22. Kết quả thực nghiệm sử dụng CPU ..................................................... 108
Hình 4.23. Kết quả thực nghiệm sử dụng bộ nhớ .................................................. 108

xii


DANH MỤC THUẬT NGỮ TIẾNG ANH
English word in thesis
by Alphabet
Availability
Chapman-Kolmogorov equations

Abbre.

Counting process
Failure
Fault
Likehood Function
Log-likehood Function
Markov chain
Markov process
Master Equations
Maximum Likehood Estimation

MLE

Memoryless
Non-homogeneous Poisson Process NHPP

Ordinary Differential Equation
Poisson process
Reliability
Remote Method Invocation
Remote Procedure Call
Safety
Software Reliability Modeling

ODE

Từ tiếng Việt
sử dụng trong luận án
Độ sẵn sàng
Hệ phương trình
Chapman-Kolmogorov
Tiến trình đếm
Thất bại
Lỗi
Hàm hợp lý
Hàm loga hợp lý
Xích Markov
Tiến trình Markov
Hệ phương trình chủ
Chapman-Kolmogorov
Phương pháp ước lượng
hợp lý cực đại
Phi kí ức
Tiến trình Poisson
khơng đồng nhất
Phương trình vi phân thường

Tiến trình Poisson
Độ tin cậy

RMI
RPC
SRM

xiii

Độ an tồn
Mơ hình độ tin cậy phần mềm


MỞ ĐẦU
1. Lý do chọn đề tài
Đề tài luận án được lựa chọn với những lý do sau:
Thứ nhất, độ tin cậy là một thuộc tính quan trọng để đánh giá phần mềm.
Theo tiêu chuẩn ISO/IEC 25010 năm 2011 về công nghệ hệ thống và phần mềm, độ
tin cậy là một trong tám thuộc tính chính của chất lượng phần mềm. Giá trị độ đo độ
tin cậy phần mềm là một thông số quan trọng được sử dụng trong nhiều pha khác
nhau của quá trình phát triển sản phẩm phần mềm: lập trình, gỡ lỗi, phát hành và
bảo trì. Việc sử dụng thông số này giúp gia tăng chất lượng cũng như hỗ trợ các
thao tác ra quyết định trong các pha đó.
Thứ hai, thao tác đánh giá sẽ đưa ra độ đo độ tin cậy phần mềm để người
phân tích có thể sử dụng trong thực tế. Hiện tại có hai hướng tiếp cận chính trong đo
lường và xác định độ tin cậy phần mềm:
 Dự đoán độ tin cậy phần mềm: từ các thông số của hệ thống hoặc dự án phát
triển sản phẩm phần mềm, dựa vào các kĩ thuật dự đốn nhằm ước tính giá trị
độ đo độ tin cậy phần mềm.
 Đánh giá độ tin cậy phần mềm: từ các dữ liệu thực nghiệm của các pha trong

quá trình phát triển sản phẩm phần mềm, dựa vào các kĩ thuật đánh giá nhằm
tính tốn giá trị độ đo độ tin cậy phần mềm.
Các nghiên cứu trong luận án chủ yếu tập trung vào hướng tiếp cận đánh giá
độ tin cậy.
Thứ ba, mơ hình hóa là phương thức dùng để đánh giá độ tin cậy của phần
mềm. Các nghiên cứu tập trung vào lĩnh vực mô hình hóa độ tin cậy phần mềm đã
được triển khai từ thập niên 1970 đến nay, sử dụng các kĩ thuật và lý thuyết toán
học khác nhau. Các nghiên cứu đó giải quyết hai vấn đề chính:
 Xây dựng mơ hình tốn học nhằm mơ hình hóa độ tin cậy phần mềm.
 Xây dựng kịch bản nhằm áp dụng các mơ hình, kĩ thuật để đo lường, xác định
độ tin cậy phần mềm.
Từ sự cần thiết của việc nghiên cứu về mơ hình hóa đánh giá độ tin cậy hệ
thống phần mềm được khẳng định thông qua các lý do trên và khả năng phát triển
những nghiên cứu đã có, tác giả luận án quyết định lựa chọn đề tài "Mơ hình đánh
giá độ tin cậy hệ thống phần mềm" để triển khai các nghiên cứu của mình.

2. Mục tiêu nghiên cứu của luận án
Từ ứng dụng thực tế của độ tin cậy phần mềm, luận án tập trung vào các mục
tiêu:
 Xây dựng các mơ hình tốn học sử dụng để tính tốn độ tin cậy phần mềm,
gồm cách thức xây dựng mơ hình và các tính tốn lý thuyết toán học.
 Đề xuất các kịch bản nhằm áp dụng các mơ hình tốn học độ tin cậy phần
mềm.
xiv


 Đề xuất và xây dựng các phương thức nhằm ứng dụng độ tin cậy phần mềm
trong thực tế.

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

Các nghiên cứu trong luận án tập trung vào các đối tượng và phạm vi nghiên
cứu sau nằm trong các lĩnh vực sau:
 Đối tượng nghiên cứu:
- Mơ hình tốn học lý thuyết độ tin cậy phần mềm.
- Cách thức áp dụng mơ hình độ tin cậy phần mềm.
- Ứng dụng của mơ hình độ tin cậy phần mềm.
 Phạm vi nghiên cứu:
- Sử dụng tiến trình Markov mơ hình hóa các dạng trạng thái khác nhau của
phần mềm dựa vào nhiều cách tiếp cận khác nhau.
- Áp dụng hàm hình dạng S tổng quát trong xây dựng mơ hình độ tin cậy
phần mềm dựa trên tiến trình Poisson khơng đồng nhất.
- Thử nghiệm một số ứng dụng thực tế liên quan tới mơ hình độ tin cậy phần
mềm.

4. Phương pháp nghiên cứu
Chúng tôi sử dụng các phương pháp nghiên cứu sau khi thực hiện luận án:
 Phương pháp nghiên cứu mơ hình hóa: dựa trên các giả thiết thực tế và
nghiên cứu đã có, chúng tơi đề xuất việc áp dụng những hàm tốn học mới
trong xây dựng các mơ hình độ tin cậy hệ thống phần mềm.
 Phương pháp nghiên cứu giả thuyết: từ các suy luận, phỏng đốn, xây dựng
nên các mơ hình mới và đánh giá giá trị của những mơ hình đó thơng qua cài
đặt thực nghiệm.
 Phương pháp nghiên cứu thực nghiệm: cài đặt thực tế các mơ hình, phương
thức được đề xuất.
 Phương pháp nghiên cứu tham khảo ý kiến chuyên gia:
- Đánh giá tính khả thi của các mơ hình mới.
- Sử dụng sự hỗ trợ của Matlab giải hệ phương trình hợp lý khi giải mơ hình.
- Triển khai ý tưởng, cài đặt thực nghiệm và hồn thiện cơng bố khoa học.

5. Nội dung luận án

Nội dung của luận án bao gồm 8 phần chính, trong đó có 4 chương nhằm
trình bày cụ thể các nội dung nghiên cứu, bao gồm:
Chương 1: Nêu các khái niệm cơ bản, làm nền tảng cho các nội dung nghiên
cứu trong các chương sau. Trình bày hiện trạng và các nghiên cứu đã có về lĩnh vực
độ tin cậy phần mềm, cũng chính là cơ sở cho cơng việc nghiên cứu của luận án. Từ
đó cung cấp cái nhìn tổng quan ban đầu cho việc thực hiện nghiên cứu của luận án.
xv


Chương 2: Trình bày cách tiếp cận sử dụng tiến trình Markov trong mơ hình
hóa độ tin cậy phần mềm. Tiến trình Markov là tiến trình phi kí ức được sử dụng để
mơ hình hóa các trạng thái của hệ thống, do đó luận án giới thiệu hai cách tiếp cận
mơ hình hóa khác nhau: (1) Tiến trình Markov mơ hình hóa trạng thái hoạt động
đơn thuần của hệ thống; (2) Tiến trình Markov mơ hình hóa trạng thái hoạt động
trong quá trình trẻ lại của hệ thống.
Chương 3: Trình bày cách tiếp cận sử dụng tiến trình Poisson khơng đồng
nhất trong mơ hình hóa độ tin cậy phần mềm. Chương 3 trình bày các nghiên cứu
hiện có về những mơ hình thuộc nhóm sử dụng tiến trình Poisson khơng đồng nhất,
từ đó so sánh các mơ hình. Trọng tâm của chương cũng như là trọng tâm của luận
án là việc đánh giá khả năng ứng dụng hàm hình dạng S tổng qt trong mơ hình
hóa độ tin cậy phần mềm dựa trên tiến trình Poisson khơng đồng nhất.
Chương 4: Trình bày các vấn đề liên quan đến ứng dụng độ tin cậy phần
mềm trong thực tế, bao gồm những nội dung sau: (1) Cung cấp một số công cụ
trong xác định và dự đoán độ đo độ tin cậy phần mềm; (2) Sử dụng độ đo độ tin cậy
trong xây dựng mơ hình tính tốn chi phí phát hành tối ưu; (3) Phân tích các kĩ thuật
tối ưu hóa mã nguồn và lập trình an tồn trong Java.

Nội dung

Bảng 0.1. Cấu trúc luận án

Các tài liệu
tham khảo
chính sử dụng

Chương 1. Tổng quan
1.1. Các kiến thức toán học cơ sở
sử dụng trong mơ hình độ tin cậy
1.2. Độ tin cậy phần mềm
1.3. Các hướng tiếp cận đánh giá độ
tin cậy hệ thống phần mềm

1.4. Tổng hợp các nghiên cứu liên
quan hiện có

Cơng bố Đóng góp
khoa học khoa học
liên quan liên quan

[59], [13]
[26], [66], [62],
[94]
[25], [26], [50],
[85], [100]
[6], [7], [2], [24],
[26], [28], [29],
[51], [55], [53],
[60], [61], [69],
[71], [80], [81],
[98], [100]


1.5. Các nhiệm vụ nghiên cứu trong
luận án
Chương 2. Mơ hình hóa độ tin cậy phần mềm dựa trên tiến trình Markov
2.1. Tiến trình Markov mơ hình hóa
[51], [55], [97]
Số 2
tiến trình hoạt động của phần mềm
Đóng góp
khoa học
[18], [48], [54],
2.2. Tiến trình Markov mơ hình hóa
thứ nhất
[78], [83], [94],
Số 3
tiến trình trẻ hóa của phần mềm
[96]
Chương 3. Mơ hình hóa độ tin cậy phần mềm dựa trên tiến trình Poisson
khơng đồng nhất
3.1. Xây dựng phương thức so sánh
[6], [26], [37],
Số 5
Đóng góp
xvi


các mơ hình thuộc nhóm sử dụng tiến [56], [80]
khoa học
trình Poisson khơng đồng nhất và thử
thứ hai
nghiệm

3.2. Đánh giá khả năng áp dụng hàm
hình dạng S tổng quát cho mơ hình độ [26], [28], [29],
Số 6
tin cậy phần mềm dựa trên tiến trình [53], [60], [61]
Poisson khơng đồng nhất
Chương 4. Một số ứng dụng thực tế liên quan tới mơ hình độ tin cậy phần
mềm
4.1. Xây dựng một số cơng cụ phần
Số 7
mềm hỗ trợ mơ hình hóa độ tin cậy
[1], [10], [14],
4.2. Ứng dụng độ tin cậy trong chính
[15] , [26], [29], Số 4
Đóng góp
sách phát hành phần mềm tối ưu
[47]
khoa học
thứ ba
4.3. Kỹ thuật tối ưu mã nguồn áp
[3], [16], [26],
dụng tập luật trên cây cú pháp trừu
[33], [34], [72],
Số 1
tượng và đánh giá ảnh hưởng đến độ
[79], [87]
tin cậy phần mềm
Trong Bảng 0.1 trình bày cấu trúc của luận án, bao gồm tài liệu tham khảo
chính, sử dụng trong các nội dung nghiên cứu, các công bố khoa học trực tiếp liên
quan đến từng nội dung và các đóng góp khoa học trong luận án.


6. Kết quả nghiên cứu, đóng góp khoa học của luận án
Trong q trình nghiên cứu và hồn thành luận án, chúng tôi đã công bố 6
bài báo và kỷ yếu tại các tạp chí và hội nghị chuyên ngành trong nước và quốc tế.
Kết quả nghiên cứu của luận án đã góp phần phát triển lĩnh vực mơ hình độ tin cậy
hệ thống phần mềm. Chúng tơi liệt kê những đóng góp khoa học chính của luận án
như sau:
Thứ nhất: Việc nghiên cứu các hướng tiếp cận sử dụng tiến trình Markov trong mơ
hình hóa độ tin cậy phần mềm, bao gồm:
(1). Xây dựng quy trình hồn chỉnh đánh giá độ tin cậy phần mềm dựa trên tiến
trình Markov khi mơ hình quá trình hoạt động của phần mềm: tiến trình hoạt động
của phần mềm, xác định được trạng thái hoạt động bình thường của phần mềm, sử
dụng các tính tốn toán học để xác định được xác suất phần mềm ở trạng thái hoạt
động bình thường từ đó xây dựng mơ hình: (i) Các trạng thái hoạt động của phần
mềm, bao gồm các trạng thái trong quá trình hoạt động, trạng thái hoạt động bình
thường và trạng thái thất bại. (ii) Các phép chuyển trạng thái; Từ đó thay vào các
cơng thức đã có sẽ thu được giá trị độ đo độ tin cậy cần tính tốn. Tiến hành thực
nghiệm đánh giá trên các bộ dữ liệu cơ bản đã cung cấp những kết quả hoàn toàn
phù hợp.
(2). Áp dụng mơ hình q trình trẻ hóa phần mềm dựa trên tiến trình Markov, phân
chia thành hai trường hợp và mơ hình hóa tốn học dưới hai điều khoản khác nhau.
Khai triển cụ thể việc giải phương trình Chapman-Kolmogorov, từ đó tính tốn
được các cơng thức cho các tham số liên quan tới chất lượng phần mềm và các tính
xvii


toán về lý thuyết cho các trường hợp tham số nhận các giá trị khác nhau. Tiến hành
thực nghiệm trên hệ thống thực BKOJ để đánh giá phương pháp đề xuất.
Thứ hai: Việc nghiên cứu các hướng tiếp cận sử dụng tiến trình Poisson khơng
đồng nhất trong mơ hình hóa độ tin cậy phần mềm, bao gồm:
(1) Đánh giá sự khác biệt khi sử dụng độ đo tổng hợp và khả năng dự đốn trong

đánh giá các mơ hình độ tin cậy hệ thống phần mềm dựa trên tiến trình Poisson
khơng đồng nhất: các mơ hình trong nhóm mơ hình độ tin cậy dựa trên phân phối
Poisson không đồng nhất khác nhau ở các giả thiết khi xây dựng mô hình, phản ánh
thơng qua cặp hàm 𝑎(𝑡), 𝑏(𝑡) và hàm đặc trưng 𝑚(𝑡). Xây dựng độ đo tổng quát
dựa trên các hàm toán học. Tiến hành thực nghiệm trên 9 bộ dữ liệu chuẩn. Các kết
quả thực nghiệm cho thấy sự khác biệt trong xếp hạng mơ hình khi sử dụng độ đo
tổng quát này và khả năng dự đoán của mơ hình về thời điểm thất bại tiếp theo.
(2) Đánh giá việc áp dụng hàm hình dạng S với 4 tham số trong xây dựng mơ hình
độ tin cậy hệ thống phần mềm dựa trên tiến trình Poisson khơng đồng nhất: phát
triển từ một hàm hình dạng S đơn giản hơn với 3 tham số, chúng tôi đề xuất hàm
hình dạng S tổng quát hơn với 4 tham số. Dựa trên hàm hình dạng S tổng qt này,
chúng tơi đã xây dựng 2 mơ hình mới thuộc nhóm các mơ hình dựa trên tiến trình
Poisson khơng đồng nhất. Các kết quả thực nghiệm cho thấy, với một số bộ dữ liệu,
cả 2 mơ hình đều hội tụ về mơ hình cơ bản nhất Goel-Okumoto.
Thứ ba: Việc xây dựng một số cơng cụ phần mềm cài đặt các mơ hình độ tin cậy.
Xây dựng các kịch bản, phương thức trong dự đoán, đánh giá cũng như ứng dụng
thực tế độ tin cậy phần mềm: (1) Sử dụng độ tin cậy trong mơ hình tính tốn chi phí
phát hành tối ưu có tính đến yếu tố rủi ro. (2) Kỹ thuật tối ưu mã nguồn áp dụng tập
luật trên cây cú pháp trừu tượng và đánh giá ảnh hưởng đến độ tin cậy phần mềm.

xviii


CHƯƠNG 1.

TỔNG QUAN

Chương 1 giới thiệu các kiến thức nền tảng được chúng tơi tìm hiểu và sử
dụng trong q trình thực hiện nghiên cứu của luận án. Mục 1.1 cung cấp các kiến
thức toán học được sử dụng trong việc mơ hình độ tin cậy phần mềm. Mục 1.2 giới

thiệu khái niệm độ tin cậy phần mềm và các khái niệm liên quan. Mục 1.3 giới thiệu
các nghiên cứu hiện có liên quan đến mơ hình độ tin cậy phần mềm. Mục 1.4 đánh
giá các nghiên cứu hiện có, từ đó chúng tơi đề xuất các nhiệm vụ nghiên cứu của
luận án trong mục 1.5.

1.1. Các kiến thức toán học cơ sở sử dụng trong mơ hình độ tin cậy
1.1.1. Phương pháp hợp lý cực đại ước lượng tham số
Phương pháp "hợp lý cực đại (maximum likelihood estimation - MLE)" là
một trong những kỹ thuật hữu ích nhất nhằm ước lượng tham số của một mơ hình
xác suất do Fisher đề xuất năm 1912 [59]. Trong phương pháp này, phép ước lượng
tham số dựa trên việc xác định hàm hợp lý của mơ hình được định nghĩa như sau.
Định nghĩa. Hàm hợp lý (likehood)
Cho 𝑋1 , 𝑋2 , ⋯ , 𝑋𝑛 là mẫu ngẫu nhiên của quần thể 𝑋 với hàm mật độ xác suất
(hoặc hàm khối xác suất) 𝑓𝑋 (𝑥, 𝜃) phụ thuộc vào tham số chưa biết 𝜃. Khi đó hàm
hợp lý của mẫu là:
𝑛

𝐿(𝜃) = ∏ 𝑓𝑋 (𝑋𝑘 , 𝜃)

(1.1)

𝑘=1

Ngoài ra, để thuận tiện khi thực hiện các tính tốn tốn học, chúng ta có thể
sử dụng hàm "loga-hợp lý (log-likehood)" log 𝐿(𝜃), chính là hàm loga của hàm hợp
lý. Khi có được hàm hợp lý với tham số 𝜃, chúng ta có phương pháp hợp lý cực đại
nhằm ước lượng tham số này.
Định nghĩa. Ước lượng hợp lý cực đại
Ước lượng hợp lý cực đại, 𝜃ML , của tham số 𝜃 là giá trị của 𝜃 để hàm hợp lý đạt
giá trị cực đại.

Việc tìm giá trị 𝜃ML được thực hiện bằng các kĩ thuật giải tích sơ cấp đơn
giản trong khảo sát hàm số. Chúng ta có thể xét phương trình hợp lý thu được bằng
𝜕𝐿
cách xét vi phân hàm L theo biến 𝜃 bằng 0, tức phương trình = 0. Nếu tham số
𝜕𝜃
𝜃 = {𝜃1 , 𝜃2 , … , 𝜃𝑘 } là một vector 𝑘 chiều các tham số, ước lượng của 𝜃 có thể thu
được bằng cách giải hệ phương trình hợp lý bao gồm các phép xét vi phân của 𝐿
theo từng biến 𝜃𝑖 bằng 0. Phương pháp hợp lý cực đại là một trong những phương
pháp ước lượng tham số phổ biến nhất với nhiều ứng dụng trong hàng loạt lĩnh vực
thực tế khác nhau. Trong luận án này, chúng tôi sử dụng phương pháp hợp lý cực
đại nhằm ước lượng tham số cho mơ hình xác suất sử dụng phân phối mũ và phân
phối Poisson tương ứng tại các chương 2 và chương 3.

1


1.1.2. Tiến trình Markov
Tiến trình Markov là một tiến trình có tính chất "phi kí ức" (memoryless)
[59]. Nói cách khác, xác suất xảy ra một trạng thái trong tương lai của tiến trình chỉ
phụ thuộc vào trạng thái hiện tại mà không phụ thuộc vào các trạng thái khác trong
quá khứ. Chúng ta có định nghĩa sau.
Định nghĩa. Tiến trình Markov
Tiến trình Markov là tiến trình ngẫu nhiên có các tính chất sau:
 Số khả năng đầu ra của mỗi trạng thái là hữu hạn.
 Đầu ra của mỗi trạng thái chỉ phụ thuộc vào đầu ra của trạng thái kề trước:
Pr(𝑋𝑛 = 𝑥𝑛 |𝑋𝑛−1 = 𝑥𝑛−1 , 𝑋𝑛−2 = 𝑥𝑛−2 , ⋯ , 𝑋0 = 𝑥0 )
= Pr(𝑋𝑛 = 𝑥𝑛 |𝑋𝑛−1 = 𝑥𝑛−1 )

(1.2)


 Các xác suất chuyển trạng thái của mơ hình là hằng số theo thời gian.
Một tiến trình Markov được đặc trưng bởi các thành phần:
- Tập hợp các trạng thái 𝑆 = {𝑆1 , 𝑆2 , … , 𝑆𝑛 }.
- Ma trận xác suất chuyển trạng thái 𝑀𝑛×𝑛 = {𝑚𝑖𝑗 |𝑚𝑖𝑗 = Pr⁡(𝑆𝑖 → 𝑆𝑗 )}.
Với tính liên tục và rời rạc cho hai chiều thời gian và trạng thái, chúng ta có
một số tiến trình Markov sau [59]:

Thời gian
rời rạc

Khơng gian trạng thái hữu hạn
hoặc đếm được
Xích Markov trên khơng gian
trạng thái hữu hạn hoặc đếm được

Thời gian
liên tục

Tiến trình Markov
thời gian liên tục

Khơng gian trạng thái liên tục
Xích Harris
Một số tiến trình liên tục có
tính chất Markov,
ví dụ tiến trình Wiener

Một trong những tiến trình ngẫu nhiên thời gian rời rạc được biết đến nhiều
nhất là "xích Markov (Markov chain)". Trong luận án, chúng tơi thực hiện các
nghiên cứu trong đó sử dụng tiến trình Markov để mơ hình q trình hoạt động bình

thường và q trình trẻ hóa của phần mềm thuộc chương 2.
1.1.3. Hệ phương trình vi phân chủ Chapman-Kolmogorov
Hệ phương trình chủ Chapman-Kolmogorov là hệ phương trình vi phân mơ
tả sự thay đổi của xác suất các trạng thái của tiến trình Markov trạng thái rời rạc
thời gian liên tục [13]. Ở đây chúng tôi sử dụng cụm từ “chủ Chapman-Kolmogorov”
vì hệ phương trình chủ “master equations” được xây dựng như là một trường hợp
đặc biệt cho hệ phương trình Chapman-Kolmogorov khi thời gian của tiến trình
Markov là liên tục.
1.1.3.1.

Hệ phương trình Chapman-Kolmogorov

Xét tiến trình Markov thời gian rời rạc 𝑡 ∈ 𝑇 = {𝑡1 , 𝑡2 , … } với tập trạng thái
rời rạc 𝑛 ∈ 𝑆 = {1,2, … } . Gọi 𝑝𝑛 (𝑡𝑖 ) là xác suất hệ thống ở trạng thái 𝑛 tại thời

2


điểm 𝑡𝑖 . Gọi 𝑃𝑖𝑗 (𝑡2 |𝑡1 ) là xác suất có điều kiện hệ thống ở trạng thái 𝑖 ở thời điểm 𝑡2
nếu hệ thống ở trạng thái 𝑗 ở thời điểm 𝑡1 . Ta có xác suất hệ thống ở trạng thái 𝑛:
𝑝𝑛 (𝑡2 ) = ∑ 𝑃𝑛𝑚 (𝑡2 |𝑡1 ) × 𝑝𝑚 (𝑡1 )
𝑚

(1.3)

Hệ các phương trình có dạng (1.3), mỗi phương trình tương ứng với một
trạng thái 𝑛 ∈ 𝑆 được gọi là hệ phương trình Chapman-Kolmogorov.
1.1.3.2.

Hệ phương trình vi phân chủ Chapman-Kolmogorov


Xét tiến trình Markov thời gian liên tục, trạng thái rời rạc với tập trạng thái
𝑛 ∈ 𝑆 = {1,2, … , 𝑘 } và ma trận chuyển trạng thái 𝑃 = {𝑃𝑖𝑗 = Pr⁡(𝑖 → 𝑗)}. Đặt 𝑝𝑛 (𝑡)
là xác suất hệ thống ở trạng thái 𝑛 tại thời điểm 𝑡. Khi đó, xác suất hệ thống ở trạng
thái 𝑛 tại thời điểm 𝑡 + ∆𝑡 là:
𝑝𝑛 (𝑡 + ∆𝑡 ) = 𝑝𝑛 (𝑡 ) + ∑ 𝑃𝑘𝑛 × 𝑝𝑘 (𝑡) × ∆𝑡 − ∑ 𝑃𝑛𝑘 × 𝑝𝑛 (𝑡) × ∆𝑡
𝑘≠𝑛

(1.4)

𝑘≠𝑛

trong đó:
 Số hạng đầu tiên là xác suất hệ thống ở trạng thái 𝑛 tại thời điểm 𝑡 và không
chuyển trạng thái trong khoảng thời gian ∆𝑡.
 Số hạng thứ hai là xác suất hệ thống ở một trạng thái 𝑘 nào đó tại thời điểm 𝑡
và chuyển sang trạng thái 𝑛 trong khoảng thời gian ∆𝑡.
 Số hạng thứ hai là xác suất hệ thống ở trạng thái 𝑛 tại thời điểm 𝑡 và chuyển
sang trạng thái 𝑘 nào đó trong khoảng thời gian ∆𝑡.
Biến đổi cơng thức (1.4) ta có:
𝑝𝑛 (𝑡 + ∆𝑡 ) − 𝑝𝑛 (𝑡 )
= ∑ 𝑃𝑘𝑛 × 𝑝𝑘 (𝑡) − ∑ 𝑃𝑛𝑘 × 𝑝𝑛 (𝑡)
∆𝑡
𝑘≠𝑛

(1.5)

𝑘≠𝑛

Cho ∆𝑡 → 0, ta có phương trình vi phân:

𝜕𝑝𝑛 (𝑡 )
= ∑ 𝑃𝑘𝑛 × 𝑝𝑘 (𝑡) − ∑ 𝑃𝑛𝑘 × 𝑝𝑛 (𝑡)
𝜕𝑡
𝑘≠𝑛

(1.6)

𝑘≠𝑛

Khi đó, hệ phương trình vi phân chủ Chapman-Kolmogorov là hệ 𝑘 phương
trình có dạng như (1.6), trong đó mỗi phương trình liên quan đến một trạng thái của
hệ thống. Bằng việc giải hệ phương trình này, chúng ta sẽ thu được các hàm 𝑝𝑠 (𝑡)
là xác suất hệ thống ở trạng thái 𝑠 tại thời điểm 𝑡. Tuy nhiên trong thực tế, việc giải
hệ phương trình vi phân này là rất khó khăn. Chúng ta có thể sử dụng các công cụ
để thực hiện giải gần đúng hệ này với điều kiện đầu cho trước:
 Sử dụng phép biến đổi Laplace .
 Sử dụng hàm ODE(Ordinary Differential Equations) trong Matlab để giải gần
đúng.
Trong luận án, chúng tôi sử dụng hệ phương trình vi phân chủ ChapmanKolmogorov trong mơ hình hóa tiến trình Markov tại mục 2.2.
3


1.1.4. Tiến trình Poisson
Trước hết, chúng ta có khái niệm "tiến trình đếm (counting process)" [59].
Định nghĩa. Tiến trình đếm
Tiến trình ngẫu nhiên {𝑁⁡(𝑡), 𝑡 ≥ 0} được gọi là tiến trình đếm nếu 𝑁(𝑡) biểu diễn
số lần một sự kiện nào đó xảy ra đến thời điểm t và thỏa mãn các đặc điểm:
 𝑁(𝑡) nhận giá trị nguyên.
 𝑁(𝑡) khơng giảm: nếu 𝑡1 < 𝑡2 thì 𝑁(𝑡1 ) ≤ 𝑁(𝑡2 ).
 Xét các thời điểm 𝑡1 < 𝑡2 , khi đó 𝑁(𝑡2 ) − 𝑁(𝑡1 ) biểu diễn số lần sự kiện xảy

ra trong khoảng thời gian (𝑡1 , 𝑡2 ].
Từ khái niệm về tiến trình đếm, chúng ta có khái niệm tiến trình Poisson:
Định nghĩa. Tiến trình Poisson
Tiến trình Poisson với tỉ lệ 𝜆 là tiến trình đếm {𝑁⁡(𝑡), 𝑡 ≥ 0} nếu
 𝑁(0) = 0.
 {𝑁(𝑡), 𝑡 ≥ 0} tăng độc lập.
 𝑁(𝑡 + 𝜏) − 𝑁(𝜏) ∼ 𝑃𝑜𝑖(𝜆𝑡)⁡⁡∀𝜏, 𝑡 ≥ 0 hay:
𝑒 −𝜆𝑠 (𝜆𝑠)𝑛
(1.7)
𝑛!
Tiến trình Poisson được dùng để biểu diễn số lượng sự kiện diễn ra trong
khoảng thời gian [0, 𝑡]. Định nghĩa trên trình bày tiến trình Poisson đồng nhất, khi 𝜆
là hằng số, tức số sự kiện trong khoảng thời gian [𝑡, 𝑡 + 𝜏] chỉ phụ thuộc vào độ dài
của khoảng thời gian mà khơng phụ thuộc vào 𝑡. Tiến trình Poisson có các đặc
điểm:
Pr[𝑁(𝑡 + 𝜏) − 𝑁(𝜏) = 𝑛] =

 Tổng các tiến trình Poisson cũng là một tiến trình Poisson.
 Hiệu hai tiến trình Poisson khơng phải là một tiến trình Poisson.
Từ đó ta có khái niệm tiếp theo về tiến trình Poisson khơng đồng nhất [59]:
Định nghĩa. Tiến trình Poisson khơng đồng nhất (non-homogeneous Poisson
process)
Tiến trình Poisson khơng đồng nhất là một tiến trình Poisson trong đó tham số 𝜆 là
một hàm của thời gian: 𝜆 = 𝜆(𝑡).
Từ đó có cơng thức cho xác suất số lượng sự kiện tới thời điểm 𝑡 là 𝑘 thông
qua hàm 𝑚(𝑡) = 𝜆(𝑢)𝑑𝑢:
𝑚(𝑡 )𝑘 −𝑚(𝑡)
(1.8)
𝑒
𝑘!

Tiến trình Poisson được ứng dụng trong mơ hình hóa số lượng bàn thắng
trong một trận đấu bóng đá, số lượng yêu cầu đến một tài nguyên của một website,
số lượng phát minh của một nhóm nghiên cứu, v.v.. Trong luận án, chúng tôi thực
Pr(𝑁(𝑡 ) = 𝑘 ) =

4


hiện các nghiên cứu sử dụng tiến trình Poisson khơng đồng nhất để mơ hình q
trình chữa lỗi của hệ thống phần mềm thuộc chương 3 và chương 4.

1.2. Độ tin cậy phần mềm
Bên cạnh các cơng cụ tốn học được sử dụng, vấn đề đặt ra khi thực hiện
nghiên cứu là định nghĩa bài toán cần giải quyết. Trong luận án, chúng tơi tập trung
vào bài tốn đánh giá và ứng dụng độ tin cậy phần mềm. Trong mục này, chúng tôi
giới thiệu một cách tổng quát về độ tin cậy phần mềm, bao gồm khái niệm về độ tin
cậy phần mềm và một số khái niệm liên quan được sử dụng ở các nội dung nghiên
cứu cụ thể sau. Theo tiêu chuẩn chất lượng quốc tế về chất lượng phần mềm
ISO/IEC 25010 [32], độ tin cậy là một trong những đặc tính chất lượng chính. Độ
tin cậy có những ứng dụng nhất định trong các pha khác nhau của vịng đời phần
mềm: thiết kế, lập trình, kiểm thử và triển khai.
1.2.1. Khái niệm
Lịch sử nghiên cứu độ tin cậy phần mềm cho thấy đã có nhiều nhà nghiên
cứu đưa ra các khái niệm khác nhau về độ tin cậy phần mềm. Mỗi khái niệm phản
ánh một góc nhìn độc lập của người đề xuất. Tuy nhiên, tất cả đều phản ánh việc hệ
thống hoạt động bình thường. Chúng tơi sẽ trình bày lại các khái niệm đó nhằm giải
thích cho việc các nhà nghiên cứu đề xuất các cơng thức tốn học cho độ đo độ tin
cậy được trình bày tại mục 1.3.
Trước hết là khái niệm của Phạm Hoàng [26]: Độ tin cậy là xác suất hoạt
động thành cơng của hệ thống, nói cách khác là xác suất mà hệ thống sẽ thực hiện

chức năng dự định của mình theo những giới hạn thiết kế đặc thù nào đó.
Tiếp theo là khái niệm của Chengjie [62]: Độ tin cậy là xác suất phần mềm
hoạt động không lỗi ở điều kiện cho trước trong một khoảng thời gian xác định.
Và khái niệm của Lyu [66]: Độ tin cậy là xác suất một phần mềm khơng có
lỗi hoạt động trong một khoảng thời gian xác định ở điều kiện xác định.
Với các hệ thống máy tính, khái niệm cơ bản về độ tin cậy có thể được diễn
tả bằng một số hình thức cụ thể như "độ tin cậy phần mềm", "độ tin cậy hệ thống",
"độ tin cậy dịch vụ", "độ sẵn sàng hệ thống", v.v.. cho các mục đích khác nhau.
Rõ ràng, khái niệm độ tin cậy phần mềm liên quan đến việc hệ thống "hoạt
động", tức là hệ thống không gặp phải một sự cố quá lớn dẫn đến tình trạng buộc
phải dừng lại. Ví dụ cho tình huống này là một chiếc máy chủ website, khi một
thanh RAM gặp sự cố, thì thiết kế của nó vẫn cho phép hoạt động bình thường với
khối lượng bộ nhớ còn lại. Điều này thực sự quan trọng khi định nghĩa bài toán liên
quan đến độ tin cậy, từ đó hỗ trợ việc thu thập dữ liệu thực tế cho các mơ hình. Mục
tiêu của việc kiểm tra và giám sát độ tin cậy nhằm giảm thiểu và loại trừ các sự cố
của phần mềm như: không hoạt động, hoạt động lỗi, v.v.. Độ tin cậy là một trong
những đặc tính đầu tiên được quan tâm đến khi đánh giá chất lượng một phần mềm.
Tuy nhiên, độ tin cậy phần mềm chỉ là một độ đo của chương trình phần
mềm. Để đánh giá các hệ thống máy tính chứa nhiều chương trình phần mềm và các
thành phần phần cứng, chúng ta thường sử dụng khái niệm độ tin cậy hệ thống [88].
Khái niệm này liên quan đến xác suất mà toàn bộ hệ thống hoàn thành tất cả các
5


nhiệm vụ mong muốn. Rõ ràng, với những kiến trúc chịu lỗi thì cơng việc của một
thành phần gặp sự cố có thể được giải quyết bởi các thành phần khác, giúp hệ thống
vẫn đảm bảo chức năng của mình. Các chương trình phần mềm có thể được bố trí
theo cơ chế song song, nối tiếp và thậm chí theo bất kỳ cơ cấu phân phối nào. Do đó,
độ tin cậy hệ thống cần phải được tính tốn theo những cách khác nhau tùy theo cấu
trúc hệ thống.

1.2.2. Lịch sử q trình nghiên cứu về mơ hình độ tin cậy phần mềm
Các nhà nghiên cứu đã tập trung đánh giá và định nghĩa một số khái niệm
liên quan tới độ tin cậy phần mềm từ những thập niên 50 của thế kỉ trước, tức là
ngay từ khi xuất hiện các hệ thống máy tính và phần mềm.
 Trước năm 1970: các nghiên cứu trong giai đoạn này như của Weiss [31],
Corcoran [91], Sauter [43], Rubey [77], Lloyd [17], vv... chủ yếu tập trung
đưa ra các khái niệm và bước đầu tìm kiếm ứng dụng Tốn học trong các lý
thuyết về mơ hình hóa và định lượng hóa. Tuy khơng thực sự nổi bật nhưng
một loạt các khái niệm được giới thiệu trong giai đoạn này đã xuất hiện trong
các công bố khoa học ở các giai đoạn kế tiếp. Ngoài ra, do đặc điểm thời đại,
khi công nghệ phần cứng vẫn thực sự chiếm ưu thế rõ ràng so với công nghệ
phần mềm, các nhà nghiên cứu đã cố gắng áp dụng các mơ hình lý thuyết của
phần cứng cho phần mềm. Có thể nói, đây là giai đoạn bản lề cho sự bùng nổ
của các giai đoạn sau này.
 Giai đoạn 1970 - 1979: sự phát triển của lý thuyết độ tin cậy đã đạt được
những bước nhảy đáng kể trong giai đoạn này với các nghiên cứu của
Akiyama [22], Jelinski [100], Littlewood [8], Schick [24], Thayer [84], Brown
[44], Dickson [35], Cook [64], Yourdon [20], Coutinho [39], Schneidewind
[68], Shooman [65], Trivedi [5], Kamat [82], Wall [42], Forman [21], Goel [6],
Sukert [2], Schick [24], Mills [25], Moranda [69], McCabe [85], . Một loạt các
mơ hình được giới thiệu và tìm hiểu, trong đó có một số mơ hình sau này đã
được đánh giá rất cao. Các tác giả sử dụng đồng thời các phương thức đánh
giá tĩnh cổ điển và các kĩ thuật liên quan đến lý thuyết xác suất thống kê. Đây
có thể coi là thời điểm khởi thủy của các mơ hình tổng qt ứng dụng các nền
tảng về chuỗi Markov hoặc phân phối Poisson.
 Giai đoạn 1980 - 1989: bước đầu xuất hiện góc nhìn phân biệt khái niệm độ
tin cậy và tính đúng đắn của hệ thống, các nghiên cứu của Daniels [9], Walsh
[86], Shanthikumar [40], Govil [49], Musa [37][38][36], Thompson [90],
Ramamoorthy [12], Cheung [75], Higgins [41], Ottenstein [52], Duran [45],
Martz [30], Castillo [93], Dale [11], Goel [7], Ohba [60][61], Misra [70],

Yamada [81], Kumar [88], chuyển dịch sang giai đoạn đánh giá phương diện
xác suất và thống kê của tiến trình chuỗi các thất bại của hệ thống. Một số mơ
hình đã được cài đặt thực tế trên một số dữ liệu thực và đánh giá các nhược
điểm, thiếu sót.
 Giai đoạn 1990 - 1999: các mơ hình lần lượt được mở rộng, khai thác sâu và
phát triển mạnh trên phương diện tính tốn tốn học, dựa trên các kĩ thuật mở
rộng vấn đề khác nhau của Cai[50], Reussner [76], Woit [19], Wood [4],
Phạm Hoàng [28][29], Ehrlich [89], Nakagawa [98], Tohma [99]. Từ những
6


giả thiết hoặc những đặc điểm khác nhau của hệ thống, các tác giả đề xuất
những ràng buộc hoặc công thức tốn học, sau đó thực hiện tính tốn thực tế
và đánh giá trên các dữ liệu thực nghiệm nhằm tìm ra ưu, nhược điểm cũng
như các mơi trường thích hợp của từng mơ hình.
 Giai đoạn 2000 - nay. Các mơ hình đã được nghiên cứu và tìm hiểu một cách
tổng qt, tồn diện và có hệ thống bởi các nhà nghiên cứu như GosevaPopstojanova [46], Wang [92], Abbas [67], Brosch [23], Larsson [58],
Roshandel [74], Chengjie [94], Phạm Hoàng [27], Cheung [51], Singh [55],
Phạm Loan [53], Anjum [56], Zhang [95], Kwon [97]. Để thích nghi với sự
xuất hiện của các loại công nghệ, kĩ thuật, lý thuyết mới của công nghệ phần
mềm, lý thuyết về độ tin cậy dần phát triển theo xu hướng mở rộng, áp dụng
trên các lĩnh vực khác nhau, trở thành một yếu tố quan trọng và được xem như
là một trong các độ đo quan trọng trong lý thuyết về chất lượng phần mềm.
1.2.3. Một số khái niệm liên quan trong mơ hình độ tin cậy phần mềm
Trong lý thuyết về độ tin cậy phần mềm, các nhà nghiên cứu đề cập đến một
loạt các thuật ngữ gần nghĩa với nhau như: lỗi (fault, error, bug, mistake), thất
bại( failure), sự cố (malfunction), khuyết tật (defect), vv... Mỗi khái niệm phản ánh
một sự kiện khác nhau, có thể mang tính chất ngun nhân gây ra hoặc sự kiện thực
tế. Chúng tôi làm rõ các thuật ngữ sử dụng trong luận án với các khái niệm sau [62]:
Định nghĩa. Lỗi (Fault)

Một phần mềm được gọi là có lỗi (khuyết tật) nếu với một vài bộ dữ liệu đầu vào,
dữ liệu kết quả đầu ra là không đúng.
Mặc dù khái niệm lỗi phần mềm cho các hệ thống và môi trường khác nhau
là khác nhau, tuy nhiên lỗi phần mềm luôn tồn tại trong mọi hệ thống và có thể
được loại bỏ bằng cách sửa chữa thành phần bị hỏng của hệ thống.
Định nghĩa. Thất bại (Failure)
Mỗi lần thực thi của phần mềm mà dữ liệu kết quả đầu ra là không đúng được gọi
là thất bại của phần mềm.
Thất bại có thể do lỗi phần mềm hoặc các lí do khác như người dùng thao tác
sai hay lỗi phần cứng. Ví dụ, các dữ liệu đầu vào sai, thao tác in ấn kết quả đầu ra
không chính xác hoặc phần cứng gặp vấn đề khi tính tốn, vv... có thể gây ra thất
bại cho phần mềm. Thông thường chúng ta sẽ tách riêng các trường hợp thất bại của
phần mềm không liên quan đến lỗi của hệ thống ra, do vậy một thất bại của hệ
thống sẽ liên quan đến một hoặc nhiều lỗi.
Định nghĩa. Tiến trình gỡ bỏ lỗi (Fault-removal process)
Trong các pha của quá trình kiểm thử phần mềm, chương trình chạy với các bộ dữ
liệu đầu vào khác nhau và định vị được các bộ dữ liệu đầu ra sai, từ đó đánh dấu
các thất bại của hệ thống. Tiếp đó, các lỗi gây ra thất bại sẽ được định vị và sửa
chữa. Tồn bộ tiến trình đó được gọi là tiến trình gỡ bỏ lỗi.

7


×