Tải bản đầy đủ (.pdf) (27 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 (886.09 KB, 27 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




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











Hà Nội – 2015


















Công trình được hoàn thành tại:
Trường Đại học Bách khoa Hà Nội





Người hướng dẫn khoa học:
PGS.TS Huỳnh Quyết Thắng




Phản biện 1: GS.TS Vũ Đức Thi
Phản biện 2: PGS.TS Đào Thanh Tĩnh
Phản biện 3: PGS.TS Đặng Văn Đức



Luận án sẽ được bảo vệ trước Hội đồng chấm luận án tiến sĩ
cấp Trường họp tại Trường Đại học Bách khoa Hà Nội


Vào hồi …… giờ, ngày … tháng … năm ………












Có thể tìm hiểu luận án tại thư viện:
1. Thư viện Tạ Quang Bửu - Trường ĐHBK Hà Nội
2. Thư viện Quốc gia Việt Nam

1

MỞ ĐẦU
1. Lý do chọn đề tài
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. Hiện tại có hai hướng tiếp cận chính trong việc đ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ự đoá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 toá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. 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ố 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 đó. 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 toán học 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 nhằm
đo lường, xác định độ tin cậy phần mềm.
Từ sự cần thiết của các nghiên cứu về độ tin cậy phần mềm và khả
năng phát triển từ 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
Luận án tập trung vào các mục tiêu:
- Xây dựng các mô hình toán học sử dụng để tính toá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
toán lý thuyết toán học.
- Đề xuất các kịch bản áp dụng các mô hình toán học độ tin cậy
phần mềm.
- Đề 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ế.
2

3. Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu:
+ Mô hình toá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 các ứng dụng thực tế mô hình độ tin cậy phần
mềm.

4. Phương pháp nghiên cứu
- 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 toá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
đoá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ự 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à hoàn thiện
công bố.
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.
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.
3

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, bao gồm 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
quát 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 độ tin cậy phần
mềm: (1) Sử dụng độ đo độ tin cậy trong xây dựng mô hình tính toán
chi phí phát hành tối ưu; (2) Phân tích các kĩ thuật tối ưu hóa mã
nguồn và lập trình an toàn trong Java; (3) Cung cấp các công cụ
trong xác định và dự đoán độ đo độ tin cậy phần mềm.

4

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.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 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.
1.1.2. Tiến trình Markov
Tiến trình Markov là một tiến trình phi kí ức: xác suất xảy ra một
trạng thái trong tương lai 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ứ.
1.1.3. Tiến trình Poisson
Tiến trình Poisson là tiến trình đếm với khoảng thời gian giữa hai sự
kiện liên tiếp tuân theo phân phối Poisson. Tiến trình Poisson không

đồng nhất là một tiến trình Poisson có tham số  là hàm của thời gian.
1.2. Độ tin cậy phần mềm
1.2.1. Khái niệm
Có nhiều khái niệm khác nhau, xoay quanh ý chính: độ 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.
1.2.2. Lịch sử quá trình nghiên cứu về mô hình độ tin cậy phần
mềm
Độ tin cậy đã được nghiên cứu từ trước thập kỉ 1970 cho tới nay.
1.2.3. Một số khái niệm liên quan trong mô hình độ tin cậy phần
mềm
Cung cấp các khái niệm liên quan sử dụng trong mô hình độ tin cậy:
lỗi, thất bại, tiến trình gỡ bỏ lỗi, sự tăng trưởng độ tin cậy, kích
thước lỗi, tính ngẫu nhiên và đồng nhất của quá trình kiểm thử
1.2.4. Phân nhóm các mô hình đánh giá độ tin cậy phần mềm
Giới thiệu cách phân nhóm của các tác giả: Phạm Hoàng, Lyu,
Chengjie đồng thời đề xuất phương pháp phân nhóm theo mô hình
cây phân cấp.
1.3. Các hướng tiếp cận đánh giá độ tin cậy hệ thống phần mềm
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
Trong quá trình xây dựng phần mềm, dự án bao gồm các tài nguyên
như chi phí, nhân công, mã nguồn, v.v Halstead, McCabe giới thiệu
các mô hình tính toán độ tin cậy phần mềm dựa trên tài nguyên đó.
5

1.3.2. Nhóm mô hình đánh giá độ tin cậy dựa trên phân tích đặc
tính dữ liệu kiểm thử trong quá trình phát triển phần mềm
Tài nguyên "tĩnh" của dự án không phản ánh nhiều tính chất của dự
án. Kiểm thử là một pha chính trong vòng đời phát triển phần mềm.

Mills, Cai và Tohma giới thiệu các mô hình áp dụng trên dữ liệu thực
tế về quá trình kiểm thử, từ đó tính toán được các giá trị độ đo liên
quan tới độ tin cậy phần mềm.
1.4. Tổng hợp các nghiên cứu liên quan hiện có
1.4.1. Tiến trình Markov mô hình tiến trình gỡ lỗi phần mềm
Từ các giả thiết chung của các mô hình:
- Chương trình chứa  lỗi.  chưa biết và là hằng số.
- Các lỗi là độc lập và có xác suất gây ra thất bại của hệ thống là
như nhau trong quá trình kiểm thử.
- Thời gian giữa hai lỗi kế tiếp độc lập với các khoảng khác và
là biến ngẫu nhiên liên tục tuân theo phân phối mũ:

.
- Khi hệ thống xảy ra một thất bại, lỗi tương ứng được loại bỏ
ngay lập tức.
- Không có lỗi nào được thêm vào trong quá trình loại bỏ lỗi đã
phát hiện.
Các tác giả dựa trên giả thiết riêng của mình đề xuất các mô hình
Jelinski-Moranda, Schick-Wolverton, Schick-Wolverton cải tiến,
Goel-Okumoto Markov, tỉ lệ xác định của Moranda.
1.4.2. Tiến trình Poisson không đồng nhất mô hình độ tin cậy
phần mềm
Thông qua việc áp dụng tiến trình Poisson vào mô hình độ tin cậy
phần mềm, các tác giả đề xuất các mô hình thuộc một trong các
nhóm: nhóm mô hình sử dụng hàm hình dạng S, nhóm mô hình có
chữa lỗi mang tính không hoàn hảo, nhóm mô hình chữa lỗi mang
tính không hoàn hảo hình dạng S.
1.5. Các nhiệm vụ nghiên cứu trong luận án
Từ các đánh giá, nhận xét về kết quả đạt được cũng như hạn chế còn
gặp phải trong các nghiên cứu hiện có, chúng tôi đề xuất ba nội dung

nghiên cứu trong luận án như sau:
- Nội dung thứ nhất. Tính toán độ tin cậy của hệ thống phần
mềm dựa trên dữ liệu là thông tin về quá trình hoạt động của
phần mềm. Bao gồm hai bài toán con:
6

+ Hoàn thiện kịch bản sử dụng chuỗi Markov ẩn đánh giá
độ tin cậy trên cơ sở kết hợp mô hình của L. Cheung và
phương pháp của L.Singh.
+ Sử dụng tiến trình Markov để mô hình hóa tiến trình trẻ
hóa phần mềm trên cơ sở nghiên cứu của Grottke và Dohi.
- Nội dung thứ hai. Đánh giá việc áp dụng tiến trình Poisson
không đồng nhất trong việc mô hình hóa tiến trình gỡ lỗi của
phần mềm. Bao gồm hai bài toán con:
+ 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.
+ Đánh giá khả năng áp dụng hàm hình dạng S tổng quát
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.
- Nội dung thứ ba. Đánh giá việc áp dụng trong thực tế mô
hình độ tin cậy phần mềm. Bao gồm ba bài toán con:
+ Ứng dụng độ tin cậy trong chính sách phát hành phần
mềm tối ưu.
+ Thử nghiệm 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.
+ Xây dựng một số công cụ phần mềm hỗ trợ mô hình hóa
độ tin cậy.

7


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 tiến trình hoạt động của
phần mềm
2.1.1. Kịch bản sử dụng chuỗi Markov ẩn đánh giá độ tin cậy
2.1.1.1. Nguyên lý áp dụng chuỗi Markov
L. Singh đề xuất phương pháp đánh giá độ tin cậy từ mô hình kiến
trúc của phần mềm bao gồm hai kỹ thuật:
- Kỹ thuật xác định xác suất của trạng thái (State Based).
- Kỹ thuật xác định xác suất chuyển trạng thái hay xác suất
đường dẫn (Path Based).
Tác giả L. Cheung đề xuất mô hình tính toán độ tin cậy trong giai
đoạn thiết kế phần mềm gồm 3 giai đoạn:
- Giai đoạn 1: xác định được các trạng thái có thể có của hệ
thống với các thông số tồn tại của nó.
- Giai đoạn 2: xác định được các xác suất chuyển trạng thái để
từ đó xây dựng nên mô hình về độ tin cậy của hệ thống.
- Giai đoạn 3: Từ các thông số đã biết về mô hình độ tin cậy của
hệ thống, áp dụng các mô hình tính toán để xác định, ước đoán về độ
tin cậy của hệ thống.
2.1.1.2. Quy trình đánh giá độ tin cậy
Chúng tôi đề xuất quy trình nhằm kết hợp các kỹ thuật của L. Singh
và mô hình của L. Cheung cho phép mô hình quá trình hoạt động
bình thường của phần mềm bằng mô hình Markov X=(S,M) với S là
tập hợp các trạng thái và M là ma trận xác suất chuyển.
- Bước 1. Mô hình hóa hệ thống.
- Bước 2. Xây dựng mô hình Markov ẩn:
+ Xác suất ban đầu của các trạng thái: 











+ Các xác suất chuyển đổi trạng thái, lưu trong ma trận .
- Tính toán mô hình: 

 
→ độ tin cậy:  

 
2.1.2. Cài đặt thực nghiệm
Quy trình được cài đặt thực nghiệm trên bộ dữ liệu cơ bản của các
tác giả:
- Young Min Kwon: mô hình hóa phần mềm gồm các trạng thái
, , .
8

- Leslie Cheung: mô hình hóa chuyển động của một robot với 6
trạng thái.
- Singh: mô hình hóa robot gồm: Controller, Sensor, Follower
và GUI.
Từ lý thuyết và kết quả thực nghiệm, chúng tôi rút ra các nhận xét:
- Giá trị độ tin cậy của hệ thống được mô hình hóa phụ thuộc
vào cả hai yếu tố: cách mô hình tập trạng thái và ma trận xác suất

chuyển trạng thái.
- Mô hình và quy trình áp dụng để đánh giá độ tin cậy của phần
mềm trong giai đoạn thiết kế sẽ cho kết quả có độ chính xác cao nếu
như các tham số giả định trong thành phần tính toán thu được là có
giá trị gần với giá trị thực tế.
- Ưu điểm của mô hình là có thể đưa ra những đánh giá về độ
tin cậy của phần mềm trong giai đoạn thiết kế, giúp cho giảm được
chi phí kiểm thử do không phải tạo ra tất cả các trường hợp để thử
nghiệm và nếu có thể tạo ra một số lượng lớn trường hợp để đánh giá
gần đúng.
Tuy nhiên, một số tồn tại của mô hình có thể chỉ ra như sau:
- Việc mô hình hóa các module đòi hỏi kinh nghiệm của người
đánh giá.
- Việc ước lượng xác suất tồn tại các trạng thái tương đối khó
khăn, đòi hỏi phải dựa trên số liệu thống kê về hồ sơ hoạt động của
module.
- Khó mô hình hóa, khó có phương pháp tiếp cận với hệ thống
ứng dụng công nghệ như RMI, RPC.
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
2.2.1. Sự trẻ hóa của hệ thống phần mềm
"Sự trẻ hóa phần mềm (software rejuvenation)" là một khái niệm liên
quan đến khởi động lại phần mềm một cách định kì và đưa hệ thống
về trạng thái sạch sẽ ban đầu sau mỗi lần bảo trì.
2.2.2. Phương thức đánh giá độ tin cậy, độ sẵn sàng và độ an
toàn của hệ thống phần mềm trẻ hóa
2.2.2.1. Mô hình hóa hệ thống
Chúng ta xét đến một hệ thống theo mô hình khách - chủ (client –
server). Tiến trình Markov 


để mô hình hệ thống phần mềm khi
thực hiện kỹ thuật trẻ hóa sẽ bao gồm ba trạng thái như tại Hình 2.6.
9


Hình 2.6. Các trạng thái khi thực hiện trẻ hóa
Từ các kí hiệu trạng thái trên, ta có các công thức để tính toán các độ
đo chất lượng của hệ thống như sau:
 Độ sẵn sàng: xác suất hệ thống sẵn sàng phục vụ các yêu cầu









(2.7)
 Độ tin cậy: xác suất hệ thống hoạt động không thất bại









(2.8)

 Độ an toàn: xác suất hệ thống không thất bại
  




 



(2.9)
Khi thực hiện các tính toán tham số, chúng ta xét hai điều khoản
khác nhau trong việc xác định thời gian bảo trì phòng ngừa:
 Điều khoản I. Trẻ hóa được thực hiện sau một khoảng thời
gian hằng số  kể từ lúc nó được khởi động mới hoặc khởi
động lại sau khi trẻ hóa lần kế trước mà không quan tâm đến
bộ đệm trống hay không. Do đó, khoảng thời gian nghỉ giữa
hai lần trẻ hóa chính là .
 Điều khoản II. Trẻ hóa được chờ để thực hiện sau một
khoảng thời gian hằng số . Cụ thể hơn, sau khoảng thời gian
, hệ thống sẽ phục vụ nốt các yêu cầu trong hàng đợi trong
khoảng thời gian  và thực hiện trẻ hóa khi hàng đợi đã rỗng.
Do đó, khoảng thời gian nghỉ giữa hai lần trẻ hóa bằng khoảng
thời gian  cộng với thời gian giải phóng hàng đợi , tức nằm
B
A
C
10

trong khoảng . Có thể thấy vấn đề của điều khoản này là

nếu khoảng thời gian giải phóng hàng đợi  là quá lâu, hệ
thống sẽ gặp trục trặc trước khi được trẻ hóa.
2.2.2.2. Các độ đo chất lượng của hệ thống phần mềm
Ta có ma trận chuyển trạng thái:

 



  
  

(2.10)
Từ đó ta có xác suất hệ thống ở các trạng thái là:












 





 


(2.14)
Có các công thức tính toán các độ đo chất lượng của hệ thống
 Độ sẵn sàng:




 


   

 

 

 


(2.15)
Thay giá trị của 






vào ta có:




 

 

 

 

(2.16)
 Độ tin cậy:




 

(2.17)
Trong đó  là khoảng thời gian hệ thống chạy bình thường và  là
khoảng thời gian bắt đầu từ khi hệ thống ngừng nhận yêu cầu đến khi
hệ thống được thực hiện trẻ hóa. Giá trị  phụ thuộc vào từng điều
khoản khác nhau được xét đến.
 Độ an toàn:
  





 


 



 

 

 

 


(2.18)
Thay giá trị của 





ta có:
 


 




 

 

 


(2.19)
2.2.4. Cài đặt thực nghiệm
Thực nghiệm bao gồm:
11

- Thay đổi các tham số nhằm đánh giá ảnh hưởng lên giá trị các
độ đo chất lượng phần mềm.
- Tính toán thực sự trên hệ thống thi trực tuyến BKOJ nhằm xác
nhận các công thức được xây dựng.
Từ những lý thuyết và kết quả thực nghiệm được trình bày trong
tiểu mục, chúng tôi rút ra các nhận xét sau:
- Chúng tôi đã giới thiệu việc ứng dụng mô hình toán học
Markov và lý thuyết về trẻ hóa phần mềm nhằm đánh giá một nhóm
thuộc tính chất lượng của phần mềm. Trong hướng tiếp cận này,
chúng tôi sử dụng hai mô hình xích Markov tương ứng với hai điều
khoản I và II. Các khai triển toán học được xác nhận bằng các kết
quả thực nghiệm tính toán bằng Matlab về hệ thống BKOJ SaaS cài
đặt trên BKCloud.
- Chúng tôi đề xuất các hướng mở rộng bao gồm: (1) Tìm hiểu
mối quan hệ giữa nhóm thuộc tính trên với các kĩ thuật chịu lỗi của

phần mềm cho môi trường đám mây. Việc đánh giá về thuộc tính của
hệ thống chịu lỗi có thể giúp ước tính chi phí xây dựng của hệ thống
có áp dụng cơ chế trẻ hóa. (2) Đánh giá về các thuộc tính của phần
mềm trẻ hóa cài đặt theo cơ chế Client-Server với  hàng đợi
 và phần mềm chịu lỗi phân tán.
2.3. Kết chương
Chương 2 cung cấp các nội dung liên quan đến kết quả chính thứ
nhất của luận án:
- Bài toán con thứ nhất đặt ra việc sử dụng tiến trình Markov là
xây dựng quy trình hoàn thiện trong áp dụng tiến trình Markov mô
hình quá trình hoạt động của phần mềm. Xuất phát từ khái niệm về
độ đo độ tin cậy là xác suất phần mềm không gặp thất bại trong một
khoảng thời gian, người phân tích cần xác định được trạng thái hoạt
động bình thường của phần mềm. Từ đó sử dụng các tính toá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. Yếu tố then chốt của cách tiếp cận này là việc định vị được:
1. 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. 2. 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 toán. Các thực
nghiệm 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.
12

- Bài toán con thứ hai đặt ra việc đánh giá các thuộc tính chất
lượng thông qua áp dụng tiến trình Markov mô hình quá trình trẻ hóa
của phần mềm. Đề cập đến thời điểm bắt đầu thực hiện thao tác trẻ
hóa, tác giả phân chia thành hai trường hợp và mô hình hóa toá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ác giả cung cấp các công thức

cho giá trị độ tin cậy phần mềm và các tính toán về lý thuyết cho các
trường hợp tham số nhận các giá trị khác nhau. Tác giả cũng đã tiến
hành thử nghiệm thực tế trên hệ thống thực Phần mềm thi trực tuyến
BKOJ để đánh giá các phương pháp đề xuất.

13

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 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
3.1.1. Các hàm độ đo tiêu chuẩn để so sánh
Các hàm độ đo tiêu chuẩn thường được sử dụng trong đại số: MSE,
MAE, MDE, AE, Noise, PRR, SSE, SD.
3.1.2. Phương thức tính toán độ đo tổng quát
Mỗi độ đo cung cấp một thông số khác nhau trong việc đánh giá chất
lượng của mô hình. Do đó, chúng tôi sử dụng đến những phép tính
toán toán học nhằm đưa ra một độ đo tổng quát dựa trên các độ đo
riêng biệt trên. Chúng tôi đề xuất kịch bản 4 bước để tính toán độ đo
tổng hợp như sau:
- Bước 1. Tính toán các giá trị của mỗi độ đo tiêu chuẩn cho các
mô hình.
- Bước 2. Tính toán trọng số cho mỗi độ đo tiêu chuẩn.
- Bước 3. Tính giá trị đã được tính đến trọng số cho mỗi độ đo
tiêu chuẩn.
- Bước 4. Tính giá trị độ đo tổng hợp.
3.1.3. Cài đặt thực nghiệm
Chúng tôi thực nghiệm trên 3 mô hình và 3 biến thể với các hàm đặc
trưng:
1. Mô hình Goel-Okumoto

  





2. Mô hình trễ hình dạng S của Yamada
    







3. Mô hình Musa-Okumoto
  


  

Và 3 biến thể của các mô hình: thay vì sử dụng đủ  bản ghi của tập
dữ liệu, mô hình chỉ sử dụng  bản ghi. Dữ liệu thực nghiệm là
các dữ liệu cơ bản về dữ liệu phần mềm chiến thuật hải quân Hoa Kì
và dữ liệu về hệ thống thao tác dữ liệu của IBM.
14

Ngoài ra, chúng tôi thực nghiệm trên 9 bộ dữ liệu cơ bản nhằm
so sánh sự xếp hạng khi sử dụng độ đo tổng hợp và khi sử dụng khả
năng dự đoán thời điểm lỗi tiếp theo của các mô hình. Từ những lý

thuyết và kết quả thực nghiệm được trình bày trong tiểu mục, chúng
tôi đưa ra các nhận xét sau:
- Việc cài đặt một số mô hình độ tin cậy phần mềm với các tập
dữ liệu thực tế nhằm phân tích và xếp hạng chúng trên hai khía cạnh:
(1) Độ tương đồng của dữ liệu do mô hình ước tính được với dữ liệu
thực tế thông qua độ đo tổng hợp. (2) Khả năng dự đoán về thời điểm
thất bại tiếp theo của mô hình.
- Các kết quả thực nghiệm cho thấy mỗi mô hình có những lợi
thế trong những trường hợp đặc biệt. Cụ thể: (1) Mô hình cơ bản
Goel-Okumoto có hai xếp hạng giống nhau trong tất cả các trường
hợp. (2) Các mô hình phức tạp Musa-Okumoto và Delayed S-shaped
tương đồng trong khoảng nửa số tập dữ liệu.
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 độ tin cậy phần mềm dựa trên tiến trình Poisson không
đồng nhất
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
Bốn mô hình thuộc nhóm dựa trên tiến trình Poisson không đồng
nhất có hàm biểu diễn tỉ lệ phát hiện lỗi mang hình dạng S:
- Mô hình hình dạng S của Ohba
- Mô hình Pham-Zhang
- Mô hình lũy thừa của Phạm Loan
- Mô hình PNZ
Trong các mô hình đã có sử dụng hàm tỉ lệ phát hiện lỗi, tác giả sử
dụng hàm hình dạng S với ba tham số ,  và :




 


  


(3.28)
Chúng tôi đề xuất việc sử dụng hàm hình dạng S với 4 tham số:




 
    

    


(3.29)
15


Hình 3.1. Hàm hình dạng S tổng quát với  và 
Để đánh giá ảnh hưởng của sự xuất hiện tham số , chúng tôi cố
định các giá trị  và , xét lần lượt các hàm với 
(biểu diễn bằng đường nét đứt) và  (biểu diễn bằng đường
nét liền) như Hình 3.1.
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
Các mô hình thuộc nhóm này hiện có một số tồn tại liên quan đến hai
vấn đề. (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. (2) Khó khăn tính
toán toán học sơ cấp khi xây dựng mô hình mới
3.2.3. Tính toán toán học cho mô hình độ tin cậy p.mềm NHPP
cải tiến
Ta có công thức khi áp dụng hàm hình dạng S 4 tham số:






 

 

 
 



 




 


 






(3.40)
Chú ý rằng hàm 



được nhân với một thương, trong đó tử số là
một tích hai hàm đơn và mẫu số là một hàm đơn. Do đó chúng ta có
thể lựa chọn hàm 



là một thương từ ba hàm đơn đó nhằm triệt
tiêu lẫn nhau khi thực hiện phép nhân, giúp quá trình tính toán trở
16

nên đơn giản hơn. Ngoài ra, xem xét đến tính tăng của hàm biểu diễn
tổng số lỗi, chúng tôi đề xuất xem xét hai mô hình:
- Mô hình thứ nhất





(3.41)











 
  



(3.42)
- Mô hình thứ hai









 






(3.49)










 






   


(3.52)
3.2.4. Các tính toán vi phân của hai mô hình
Nhằm ước tính các tham số từ dữ liệu thực tế, chúng ta cần tính toán
các vi phân của hàm  theo các tham số , ,  và  để thay vào
hệ phương trình hợp lý.
3.2.5. Cài đặt thực nghiệm
Chúng tôi tiến hành cài đặt thực nghiệm hai mô hình trên ngôn ngữ
Matlab dựa trên dữ liệu thực nghiệm cơ bản: dữ liệu về dự án T và
dữ liệu của Hải quân Hoa Kỳ.

Từ những lý thuyết và kết quả thực nghiệm được trình bày trong
tiểu mục, chúng tôi rút ra các nhận xét sau:
- Cách thức đề xuất hàm hình dạng S tổng quát hơn so với các
hàm đã tồn tại trong những nghiên cứu hiện có.
- Ứng dụng của hàm hình dạng S tổng quát đó trong hai mô hình
mới, từ đó đưa ra các tính toán toán học của các mô hình.
- Các kết quả thực nghiệm cho thấy: (1) Hai mô hình mới không
giải được trên một số bộ dữ liệu. (2) Với những bộ dữ liệu giải được,
cả hai mô hình đều hội tụ về mô hình cơ bản Goel-Okumoto.
3.3. Kết chương
Chương 3 giới thiệu các nghiên cứu liên quan kết quả chính thứ hai
của luận án:
- 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
. Từ đó phát sinh nhu cầu so sánh các mô hình với nhau. Các
kết quả thực nghiệm trên 9 bộ dữ liệu chuẩn cho thấy sự khác biệt
17

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.
- Phát triển từ một hàm hình dạng S đơn giản hơn với 3 tham số,
tác giả đã đề xuất hàm hình dạng S tổng quát hơn với 4 tham số
nhằm định hình tốt hơn. Dựa trên hàm hình dạng S tổng quát này, tác
giả đã 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. Mô hình mới 1 có hàm biểu diễn
tổng số lỗi là hằng số và mô hình mới 2 có hàm biểu diễn tổng số lỗi
cũng mang hình dạng S. 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.

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 mềm hỗ trợ mô hình hóa độ
tin cậy
4.1.1. Phần mềm dự đoá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
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
Kịch bản dự đoán gồm sáu bước được thực hiện bởi nhóm phát triển
thành phần phần mềm, kiến trúc sư phần mềm và công cụ dự đoán độ
tin cậy:
1: nhóm phát triển cung cấp đặc tả tin cậy của thành phần phần
mềm.
2: kiến trúc sư phần mềm tạo ra mô hình tin cậy của hệ thống
bằng cách xử lý các đặc tả tin cậy theo kiến trúc định trước.
3: mô tả luồng điều khiển của toàn bộ hệ thống bằng cách lan
truyền các yêu cầu tại biên của hệ thống đến các thành phần phần
mềm riêng biệt.
4: dự đoán độ tin cậy cho mỗi dịch vụ cần thiết.
5: nếu hệ thống không đạt được các yêu cầu cho trước về tính
tin cậy:
- Nhóm phát triển có thể xét duyệt lại cấu hình của thành
phần phần mềm đó.
- Kiến trúc sư phần mềm có thể xét duyệt lại kiến trúc phần
mềm và hồ sơ sử dụng hệ thống.
6: nếu hệ thống đã mô hình hóa đáp ứng các yêu cầu tin cậy đề
ra.
18

4.1.1.2. Cấu trúc phần mềm

Phần mềm giữ nguyên các yếu tố sau:
- Giữ nguyên 4 loại cấu trúc điều khiển cơ sở
- Giữ nguyên các mô hình thất bại
- Giữ nguyên cách chuyển đổi mỗi thành phần cách sử dụng hệ
thống
Việc áp dụng mô hình PNZ thể hiện ở các thay đổi:
- Trong cách chuyển đổi mỗi thành phần cách sử dụng hệ thống
của cấu trúc thử lại.
- Trong cách chuyển đổi mỗi thành phần cách sử dụng hệ thống
của cấu trúc đa loại trừ.
4.1.1.3. Hướng dẫn sử dụng phần mềm
Phần mềm bao gồm 4 thuộc tính khi chạy: -h, -p, -s, -v
nhằm thực hiện dự đoán độ tin cậy từ dữ liệu đầu vào.
4.1.1.4. Một vài trường hợp thử nghiệm
Chúng tôi thực hiện các thử nghiệm trên các hệ thống thực WebScan
và ReportingService.
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
Phần mềm Bộ đánh giá độ tin cậy phần mềm (Software Reliability
Evaluator) do chúng tôi xây dựng nhằm hỗ trợ quá trình thực hiện
các nghiên cứu trong luận án được viết bằng ngôn ngữ lập trình Java
sử dụng bộ công cụ Eclipse.
Phần mềm cung cấp các chức năng sau:
- Chức năng đọc dữ liệu từ một tệp đuôi txt.
- Chức năng lựa chọn mô hình.
- Chức năng tính toán.
- Chức năng hiển thị so sánh trực quan.
4.2. Ứng dụng độ tin cậy trong chính sách phát hành phần mềm
tối ưu
4.2.1. Tính toán chi phí phát hành sử dụng yếu tố rủi ro dựa trên

mô hình PNZ
Ta có hàm đặc trưng của mô hình PNZ:






  



  


 


  
(4.3)
Phạm Hoàng giới thiệu cách thức tính chi phí phát hành sử dụng yếu
tố rủi ro dựa trên mô hình độ tin cậy bằng cách chia chi phí thành các
phần nhỏ:
19

- Chi phí kiểm thử.
- Chi phí gỡ lỗi.
- Chi phí rủi ro do thất bại của hệ thống.
Từ đó có công thức chi phí phát hành phần mềm:







 

 




 

 



 

 


  





(4.8)

4.2.2. Cài đặt thực nghiệm
Chúng tôi thực hiện cài đặt mô hình tính toán chi phí phát hành trên
với các bộ dữ liệu:
- Dữ liệu chi phí thực tại Hoa Kỳ
- Dữ liệu chi phí thực tại Việt Nam
Ngoài ra, chúng tôi lựa chọn bộ chi phí tại Việt Nam làm chuẩn và
thay đổi giá trị các tham số xung quanh bộ chi phí này để đánh giá
ảnh hưởng của các tham số lên chi phí phát hành tối ưu.
Từ những lý thuyết và kết quả thực nghiệm được trình bày trong
tiểu mục, chúng tôi rút ra các nhận xét sau:
- Nhìn chung, các thực nghiệm dựa trên giá trị khảo sát thực tế
tại Hoa Kì và Việt Nam đều cho ra kết quả tương đồng nhau.
- Nhận xét chung về sự ảnh hưởng của các tham số:
+ Thời gian phát hành ổn định: tham số dao động quanh bộ
tham số 1#.
+ Chi phí phát hành tăng khi các tham số tăng.
- Tỉ số chi phí lập trình trên chi phí kiểm thử tác động ổn định
đến thời điểm phát hành tốt nhất và tổng chi phí phát hành tốt nhất.
- Tỉ số chi phí rủi ro trên chi phí kiểm thử tác động mạnh đến
thời điểm phát hành tuy nhiên thời điểm phát hành sẽ đi dần đến một
giá trị tiệm cận ổn định khi tỉ số đó đủ lớn.
- Thời gian trung bình chữa lỗi tác động lớn đến chi phí phát
hành phần mềm.
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
4.3.1. Các kĩ thuật cơ bản trong phát triển ứng dụng Java
Khi kích thước của phần mềm tăng nhanh, các nhà nghiên cứu
tập trung vào việc tối ưu mã nguồn để tiết kiệm tài nguyên. Aho
quan tâm đên việc tối ưu mã nguồn như là một vấn đề con của bài
toán trình biên dịch.

Lập trình an toàn liên quan đến các vấn đề về lỗi: phát hiện,
chịu lỗi, sao lưu, v.v Mục tiêu của nhà phát triển là xây dựng một
20

hệ thống an toàn, trong đó các công việc nghiệp vụ của người dùng
được thực hiện một cách đúng đắn.
"Cây cú pháp trừu tượng (AST, abstract syntax tree)" là một cây
biểu diễn cấu trúc cú pháp trừu tượng của mã nguồn: mỗi nút của cây
biểu diễn một cấu trúc bên trong mã nguồn.
4.3.2. Luật và việc áp dụng trên cây cú pháp trừu tượng
Việc áp dụng luật trên cây cú pháp trừu tượng bao gồm các kĩ thuật:
- Xây dựng các luật: cần tập trung vào tài nguyên từ các nguồn
uy tín như Oracle, Google hay AppPerfect.
- Sử dụng luật phát hiện các thành phần tiềm năng trong mã
nguồn, gồm bốn bước:
1. Chuyển đổi tất cả các tệp mã nguồn của dự án Java thành
cây cú pháp trừu tượng.
2. Chia các thành phần của mỗi cây cú pháp trừu tượng
thành các nhóm,.
3. Áp dụng từng quy tắc đối với các thành phần phù hợp.
4. Liệt kê tất cả các thành phần tiềm năng và thu thập thông
tin có liên quan với mỗi thành phần tiềm năng
- Sử dụng các luật để thay đổi mã nguồn
1. Chọn một thành phần tiềm năng vi phạm các luật và tất
cả các thông tin.
2. Kiểm tra lại sự vi phạm của thành phần này. Nếu nó vẫn
vi phạm, có hai khả năng xảy ra: (1) Nếu luật đó không phụ thuộc
vào ngữ nghĩa chương trình, mã nguồn sẽ được thay đổi tự động. (2)
Nếu luật đó phụ thuộc vào ngữ nghĩa chương trình, plug-in sẽ đề
xuất với lập trình viên tất cả các thông tin liên quan để quyết định có

thay đổi mã nguồn hay không.
3. Thay đổi mã nguồn.
4.3.3. Cài đặt thực nghiệm
Sản phẩm thực nghiệm là một Eclipse plug-in tool với chức năng: (1)
Tìm kiếm và phân tích các thành phần tiềm năng có thể bị ảnh hưởng
bởi việc tối ưu mã nguồn và kỹ thuật lập trình an toàn. (2) Phương
thức hỗ trợ để chỉnh sửa những thành phần đó bằng cách hiển thị
thông tin hỗ trợ và đề xuất ý kiến. Các kết quả thực nghiệm cho thấy
sự cải thiện rõ rệt về hiệu năng của hệ thống, bao gồm cả các thông
số liên quan đến độ tin cậy, của hệ thống.
Từ những lý thuyết và kết quả thực nghiệm được trình bày trong
tiểu mục, chúng tôi rút ra các nhận xét sau:
21

- Các kĩ thuật lập trình an toàn và tối ưu mã nguồn ảnh hưởng
nhất định đến hiệu năng của hệ thống.
- Để mở rộng công việc, có thể quan tâm đến: (1) Việc mở rộng
tập luật. (2) Quá trình thay đổi cập nhật mã nguồn có thể được thực
hiện tự động hoặc bán tự động.
4.4. Kết chương
Chương 4 trình bày các nội dung liên quan đến dự đoán, tính toán và
ứng dụng độ đo độ tin cậy phần mềm trong thực tế, là kết quả chính
thứ ba trong ba kết quả nghiên cứu chính của luận án trình bày tại
mục 6 trong phần Mở đầu. Thông qua các nghiên cứu thực hiện tại
chương này, luận án đưa ra một số tổng kết cho kết quả chính thứ ba
sau:
- Độ đo độ tin cậy là một tham số quan trọng trong mô hình tính
toán chi phí phát hành có xét đến yếu tố rủi ro. Nếu phát hành quá
sớm, những rủi ro tiềm ẩn của phần mềm sẽ phát sinh những chi phí
không mong muốn rất lớn. Nếu phát hành quá muộn, chi phí phát

triển sản phẩm sẽ tăng lên quá cao. Việc sử dụng các tính toán toán
học sẽ giúp định vị được thời gian hợp lý nhất để phát hành phần
mềm. Các thực nghiệm trên các dữ liệu thực tại Hoa Kỳ và Việt Nam
cho thấy tỉ lệ chi phí rủi ro trên chi phí kiểm thử tác động rất mạnh
lên tổng chi phí phát hành.
- Các kết quả thực nghiệm đã cho thấy việc áp dụng các luật
trong quá trình lập trình và phát triển sản phẩm Java đem lại những
lợi ích đáng kể. Hiệu quả hoạt động của hệ thống, trong đó bao gồm
cả ước lượng về tính tin cậy, đã được cải thiện rõ rệt.
- Nhằm đưa ứng dụng của mô hình độ tin cậy phần mềm vào
ứng dụng thực tế, luận án đã trình bày các sản phẩm phần mềm thực
tế do tác giả và nhóm đồng nghiệp xây dựng. Các ứng dụng được
xây dựng trên ngôn ngữ Java với mã nguồn hoàn toàn công khai,
kiến trúc mở cho phép bổ sung thêm các mô hình.
KẾT LUẬN VÀ KIẾN NGHỊ
Kết luận
Luận án tập trung vào mô hình hóa nhằm đánh giá độ tin cậy hệ
thống phần mềm. Mô hình hóa độ tin cậy phần mềm là một lĩnh vực
lý thuyết sử dụng các công cụ toán học nhằm mô hình hóa một sản
phẩm phần mềm, từ đó đưa ra tính toán về các độ đo liên quan đến
độ tin cậy. Các nghiên cứu của chúng tôi sử dụng các cách tiếp cận
dựa trên tiến trình Markov và tiến trình Poisson không đồng nhất.
22

Tiến trình Markov với đặc tính phi kí ức hoàn toàn thích hợp để
mô hình hóa các dạng trạng thái khác nhau của phần mềm. Từ các
tính toán lý thuyết và kết quả thực nghiệm, chúng tôi rút ra: (1) sự lệ
thuộc rất lớn của cách thức mô hình các trạng thái và xác suất các
phép chuyển trạng thái đến giá trị độ đo độ tin cậy của hệ thống. (2)
Tham số thời gian thực hiện trẻ hóa có tác động quyết định đến các

độ đo chất lượng phần mềm dưới cả hai điều khoản.
Tiến trình Poisson không đồng nhất được sử dụng trong các
nghiên cứu của luận án là một dạng đặc biệt của tiến trình Markov
với các khoảng thời gian giữa các thất bại tuân theo phân phối
Poisson. Từ các tính toán lý thuyết và kết quả thực nghiệm, chúng tôi
rút ra: (1) Sự khác biệt rõ ràng giữa so sánh các mô hình khi sử dụng
độ đo tổng quát và khi quan tâm đến khả năng dự đoán thời điểm xảy
ra lỗi tiếp theo. (2) Hàm hình dạng S 4 tham số hoàn toàn khả thi khi
ứng dụng vào xây dựng mô hình dựa trên tiến trình Poisson không
đồng nhất.
Nhằm ứng dụng mô hình độ tin cậy phần mềm trong thực tế,
chúng tôi đã phát triển một số công cụ cài đặt các vấn đề lý thuyết
liên quan đến mô hình độ tin cậy hệ thống phần mềm. Ứng dụng đầu
tiên liên quan đến sự ảnh hưởng của thông số độ tin cậy đến chính
sách và thời điểm phát hành phần mềm có quan tâm tới yếu tố rủi ro.
Các kết quả thực nghiệm chỉ ra sự tương đồng giữa Hoa Kỳ và tại
Việt Nam, đồng thời cho thấy sự ảnh hưởng rõ rệt của tham số chi
phí rủi ro lên tổng chi phí phát hành phần mềm. Nhóm ứng dụng thứ
hai cài đặt các mô hình toán học bằng những ngôn ngữ lập trình Java,
Matlab hỗ trợ quá trình nghiên cứu của luận án và người sử dụng độc
lập khác. Ứng dụng thứ ba liên quan đến vấn đề lập trình an toàn và
tối ưu hóa mã nguồn trong lập trình Java. Các kết quả thực nghiệm
cho thấy hiệu quả sử dụng tài nguyên, bao gồm các thông số liên
quan tới độ tin cậy phần mềm, đã được cải thiện một cách rõ rệt.
Đóng góp khoa học của luận án
Trong quá trình nghiên cứu và hoà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ại 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ê 05 đóng góp khoa học chính của luận án như sau:

23

1. 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 2 đóng góp con: (1)
Xây dựng quy trình hoà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 toá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 toá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) Xây dựng mô
hình quá trình trẻ hóa phần mềm áp dụng tiến trình Markov,
phân chia thành hai trường hợp và mô hình hóa toá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 toán được các công thức cho
giá trị độ tin cậy phần mềm và các tính 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.
2. 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 2
đóng góp con: (1) Xây dựng độ đo tổng hợp trong đánh giá và so
sánh 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

×