Cài đặt tính toán hai mô hình trên ngôn ngữ Matlab

Một phần của tài liệu Mô hình đánh giá độ tin cậy hệ thống phần mềm (Trang 96)

6. Kết quả nghiên cứu, đóng góp khoa học của luận án

3.2.5.2.Cài đặt tính toán hai mô hình trên ngôn ngữ Matlab

Chúng tôi cài đặt các mô hình trên ngôn ngữ Matlab bao gồm các tệp:  dlamda_da_lamda.m: cài đặt hàm

79  dlamda_db_lamda.m: cài đặt hàm  dlamda_dk_lamda.m: cài đặt hàm  dlamda_dn_lamda.m: cài đặt hàm  dm_da.m: cài đặt hàm  dm_db.m: cài đặt hàm  dm_dk.m: cài đặt hàm  dm_dn.m: cài đặt hàm

 MainFunction: cài đặt hàm fsolve() của Matlab để giải hệ phương trình hợp lý sử dụng 8 hàm được cài đặt trên.

 Main_Modelx.m: cài đặt giải hệ phương trình hợp lý. Hai mô hình được đánh số lần lượt là 1, 2 và được đại diện bởi kí tự x trong tên tệp.

Mã nguồn các file Matlab được chúng tôi trình bày trong Phụ lục A.

3.2.5.3. Kết quả thực nghiệm ƣớc lƣợng tham số mô hình thứ nhất

Mô hình thứ nhất có 4 tham số và . Áp dụng cách thức ước lượng tham số của nhóm các mô hình dựa trên tiến trình Poisson không đồng nhất, ta thu được một hệ 4 phương trình 4 ẩn số. Ngoài ra, các tham số của hệ này được tính toán dựa trên các giá trị của tập dữ liệu về dự án T trình bày ở phụ lục B.7. Dễ dàng nhận thấy việc giải sơ cấp hệ này là bất khả thi, do đó chúng tôi đã cài đặt trên Matlab để sử dụng các công cụ hỗ trợ. Khi cài đặt, chúng tôi sử dụng câu lệnh fsolve() của Matlab để giải hệ phương trình hợp lý nói trên. Để giải quyết cả trường hợp hệ có nhiều hơn một nghiệm, chúng tôi sử dụng lệnh này với một tập các nghiệm khởi tạo được mô tả như sau:

 Vector nghiệm khởi tạo bắt đầu từ

[a, b, k, n]=[24, 0.01, 0.1, 1]

 Bước nhảy của vector là [1, 0.01, 0.1, 1], tức vector nghiệm khởi tạo kế tiếp của

[a, b, k, n]

[a+1, b+0.01, k+0.1, n+1]

 Đến vector nghiệm khởi tạo

[a, b, k, n]=[50, 0.99, 0.9, 30]

80  ’MaxFunEvals’=1000000

 ’MaxIter’=1000

Sau 721710 vòng lặp, ta thu được duy nhất một nghiệm

[a*, b*, k*, n*]=[23.7451, 0.00341519, 1.0, 0.0]

Từ kết quả thực nghiệm, chúng tôi thấy rằng nếu sử dụng phương pháp hợp lý cực đại để ước lượng tham số dựa trên dữ liệu thực về dự án T, mô hình thứ nhất sẽ hội tụ về mô hình cơ bản Goel-Okumoto với hàm trung bình như công thức (1.87).

3.2.5.4. Kết quả thực nghiệm ƣớc lƣợng tham số mô hình thứ hai

Mô hình thứ hai có 4 tham số , , và . Áp dụng cách thức ước lượng tham số của nhóm các mô hình dựa trên tiến trình Poisson không đồng nhất, ta thu được một hệ 4 phương trình 4 ẩn số. Ngoài ra, các tham số của hệ này được tính toán dựa trên các giá trị của tập dữ liệu của Hải quân Hoa Kỳ trình bày ở phụ lục B.4. Dễ dàng nhận thấy việc giải sơ cấp hệ này là bất khả thi, do đó chúng tôi đã cài đặt trên Matlab để sử dụng các công cụ hỗ trợ. Khi cài đặt, chúng tôi sử dụng câu lệnh fsolve() của Matlab để giải hệ phương trình hợp lý nói trên. Để giải quyết cả trường hợp hệ có nhiều hơn một nghiệm, chúng tôi sử dụng lệnh này với một tập các nghiệm khởi tạo được mô tả như sau:

 Vector nghiệm khởi tạo bắt đầu từ

[a,b,k,n]=[18,0.01,0.1,1]

 Vector nghiệm khởi tạo kế tiếp của

[a,b,k,n]

[a+1,b+0.01,k+0.1,n+1]

 Vì hệ phương trình hợp lý là không giải được khi , chúng tôi lựa chọn vector nghiệm khởi tạo kết thúc là

[a,b,k,n]=[24,0.71,0.9,20]

Ngoài ra, tùy chọn optimset() được thiết lập là:  ’MaxFunEvals’=1000000 (adsbygoogle = window.adsbygoogle || []).push({});

 ’MaxIter’=1000

Sau 89460 vòng lặp, ta thu được duy nhất một nghiệm

[a*,b*,k*,n*] = [29.42827, 0.007402, 1.0, 0.0]

Từ kết quả thực nghiệm, chúng tôi thấy rằng nếu sử dụng phương pháp hợp lý cực đại để ước lượng tham số dựa trên dữ liệu thực của Hải quân Hoa Kỳ, mô hình thứ hai sẽ hội tụ về mô hình cơ bản Goel-Okumoto với hàm trung bình có nghĩa trong công thức (1.87).

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:

81

 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.

Kết quả nghiên cứu trong phần này đã được công bố trong công trình số 6 trong danh mục các công trình đã công bố của luận án.

3.3. Kết chƣơng

Chương 3 giới thiệu các nghiên cứu liên quan đến nhóm 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, là nội dung nghiên cứu thứ hai trong luận án. Thông qua các nghiên cứu thực hiện tại chương này, tác giả đưa ra một số tổng kết cho nội dung này như sau:

 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. Từ các hàm so sánh toán học đơn thuần, mục 3.1 cung cấp phương thức xây dựng một độ đo tổng quát dựa trên các hàm toán học đó. 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 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. Nếu dựa vào cách phân chia như tại tiểu mục 1.2.4, mô hình mới 1 thuộc nhóm mô hình độ tin cậy sử dụng hàm hình dạng S và mô hình mới 2 thuộc nhóm mô hình độ tin cậy chữa lỗi không hoàn hảo sử dụng hàm 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.

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

Các chương trước đã trình bày các nghiên cứu về mô hình hóa độ tin cậy phần mềm: khái niệm, phương thức, cách thức xây dựng, v.v.. Từ đó phát sinh nhu cầu sử dụng các lý thuyết đó để ứng dụng trong thực tế. Nội dung trong chương 4 sẽ trình bày về việc áp dụng chúng trong thực tế. Hiện có hai cách tiếp cận khác nhau được trình bày: (1) Dự đoán độ tin cậy dựa vào các tài nguyên của quá trình phân tích, thiết kế; (2) Tính toán độ tin cậy dựa vào các tài nguyên của quá trình kiểm thử. Chương 4 giới thiệu các nội dung liên quan đến tính toán và ứng dụng độ đo độ tin cậy phần mềm trong thực tế, bao gồm:

 Cài đặt các mô hình độ tin cậy trong cơ chế đánh giá và dự đoán độ tin cậy phần mềm: là hướng tiếp cận thứ ba khi trực tiếp phát triển các công cụ phần mềm thực tế. Phần mềm thứ nhất trình bày trong tiểu mục 4.1.1 thực hiện cài đặt mô hình PNZ thuộc nhóm dựa trên tiến trình Poisson không đồng nhất cho một kịch bản dự đoán độ tin cậy phần mềm. Phần mềm thứ hai trình bày trong tiểu mục 4.1.2 thực hiện cài đặt một số mô hình thuộc nhóm dựa trên tiến trình Poisson không đồng nhất để phân tích các bộ dữ liệu từ thực tế nhằm thu được các độ đo liên quan tới độ tin cậy phần mềm.

 Mô hình tính toán chính sách phát hành phần mềm có tính đến yếu tố rủi ro là hướng tiếp cận thứ nhất khi ứng dụng một mô hình độ tin cậy dựa trên tiến trình Poisson không đồng nhất trong một vấn đề thực tế. Bài toán đặt ra là dựa trên các tính toán về độ tin cậy để lựa chọn thời điểm phát hành nhằm tối ưu hóa chi phí phát triển phần mềm. Chi phí rủi ro là chi phí cần thiết để khắc phục hậu quả khi hệ thống gặp thất bại, thường là rất lớn, bao gồm tiền phục hồi hệ thống, tiền đền bù hợp đồng, sự suy giảm thương hiệu, v.v.. Từ độ đo độ tin cậy sẽ tính được xác suất hệ thống xảy ra thất bại, từ đó sử dụng các giả thiết toán học để tính toán được thời điểm hợp lý nhất phát hành phần mềm. Nếu phát hành quá sớm sẽ dẫn đến độ tin cậy thấp, khả năng phải chi trả chi phí rủi ro là rất lớn. Nếu phát hành quá muộn sẽ khiến các chi phí sản xuất đội lên vượt mức cho phép, giảm hiệu quả kinh tế.

 Ảnh hưởng của lập trình an toàn và tối ưu hóa mã nguồn đến chất lượng hiệu năng hoạt động của phần mềm, trong đó có độ đo độ tin cậy: là hướng tiếp cận thứ hai khi đánh giá sự ảnh hưởng của các thành tố khác của quá trình phát triển phần mềm đến độ đo độ tin cậy. Kế thừa các nghiên cứu của Aho [3], áp dụng tập luật trên cây cú pháp trừu tượng trong tối ưu mã nguồn: Luật là một nhóm các qui tắc được xây dựng nhằm giúp nâng cao quá trình viết mã; Việc áp dụng tập luật trên cây cú pháp trừu tượng sẽ giúp cải thiện chất lượng của mã nguồn. Chúng tôi thử nghiệm đánh giá ảnh hưởng việc áp dụng tập luật trên cây cú pháp trong lập trình trong giảm thiểu các lỗi của hệ thống qua đó nâng cao hiệu năng và độ tin cậy của hệ thống phần mềm. Các kết quả thực nghiệm trên hệ thống BKProfile cho thấy cách tiếp cận này thực sự mang lại các hiệu quả cho việc cải thiện chất lượng hiệu năng hoạt động của hệ thống, bao gồm trong đó có độ đo độ tin cậy phần mềm.

83

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

Thành phần phần mềm là một module bộ phận của hệ thống, với các hành vi được định nghĩa thông qua các giao diện với các thành phần khác. Các giao diện đó được sử dụng để thực thi các chức năng của thành phần đó cũng như kiểm tra tính tương thích trong môi trường cài đặt. Tuy nhiên, để dự đoán tính tin cậy của một kiến trúc phần mềm hướng thành phần sẽ cần thêm một số thông tin bổ sung khác nữa [71]. Kịch bản dự đoán bao 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 như Hình 4.1.

Bƣớc 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. Một đặc tả tin cậy của thành phần phần mềm bao gồm các xác xuất liên quan đến tính tin cậy (xác suất thất bại, xác suất lỗi lan truyền …) và gọi các dịch vụ cần thiết cho thành phần đó.

Bƣớc 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, từ đó cung cấp hồ sơ sử dụng của hệ thống hoàn thiện.

Bƣớc 3: từ mô hình tin cậy của hệ thống, hoàn toàn có thể 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. Bởi đặc tả tính tin cậy của thành phần phần mềm bao gồm lời gọi lan truyền đến dịch vụ cần thiết của thành phần phần mềm nên phương thức này hoạt động một cách đệ quy. Mô hình thu được có thể được chuyển thể thành mô hình độ tin cậy phần mềm.  Bƣớc 4: bằng việc phân tích mô hình độ tin cậy, bước dự đoán độ tin cậy cho

mỗi dịch vụ cần thiết trên có thể được thu thập dựa vào các xác xuất liên quan đến tính tin cậy của các thành phần phần mềm trong hệ thống. (adsbygoogle = window.adsbygoogle || []).push({});

Bƣớc 5: được thực hiện nếu hệ thống không đạt được các yêu cầu cho trước về tính tin cậy, bao gồm các lựa chọn:

- 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 như: thử cấu hình khác của kiến trúc hệ thống hay thay thế một số thành phần phần mềm quan trọng bằng những thành phần có tính tin cậy cao hơn.

Bƣớc 6: ngược lại bước 5, bước này được thực hiện nếu hệ thống đã mô hình hóa đáp ứng các yêu cầu tin cậy đề ra. Khi đó, kiến trúc sư hệ thống xử lý các đặc tả tin cậy theo đúng kiến trúc hệ thống.

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

84  Giữ nguyên 4 loại cấu trúc điều khiển cơ sở

- Cấu trúc tuyến tính - Cấu trúc rẽ nhánh - Cấu trúc vòng lặp - Cấu trúc song song

 Giữ nguyên các mô hình thất bại

- F0 là loại thất bại tiền định nghĩa tương ứng với dịch vụ chính xác. - FS là nhóm tất cả các lỗi dừng .

- FP là nhóm tất cả các lỗi lan truyền .

- AIOS lá nhóm của tất cả các nhóm thất bại cho hoạt động nội bộ có đầu vào hoặc đầu ra là

- AFS là nhóm của tất cả các nhóm loại thất bại cho hoạt động nội bộ với dấu hiệu thất bại .

Hình 4.1. Kịch bản dự đoán độ tin cậy phần mềm

 Giữ nguyên cách chuyển đổi mỗi thành phần cách sử dụng hệ thống - Cấu trúc tuyến tính - Cấu trúc rẽ nhánh Công cụ dự đoán độ tin cậy Tạo/cập nhật các đặc tả tin cậy thành phần phần mềm Đặc tả tin cậy thành phần phần mềm Mô hình tin cậy hệ thống Tạo/cập nhật

mô hình tin cậy của hệ thống Biến đổi mô hình Phân tích mô hình Xét duyệt mô hình, kiến trúc, hồ sơ sử dụng Xử lý cài đặt thành phần phần mềm Mô hình độ tin cậy Dự đoán độ tin cậy Phân tích tương thích Thẩm định kết quả Nhóm phát triển thành phần phần mềm Kiến trúc sƣ phần mềm ⑥ ⑤ ④ ③ ② ① Đạt Không

85 - Cấu trúc vòng lặp

- Cấu trúc song song

Ngoài ra, 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: với mỗi đầu vào của cấu trúc thử lại, quá trình chuyển đổi thay vì xây dựng một mô hình Markov bình thường, sẽ xây dựng một mô hình PNZ phản ánh tất cả các quá trình thực thi có thể của cấu trúc thử lại với đầu vào I và các xác suất tương ứng của nó, rồi sau đó xâu dựng mô hình thất bại cho IA tương đương từ mô hình PNZ.

 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ừ: với mỗi đầu vào của cấu trúc đa loại trừ, quá trình chuyển đổi thay vì xây dựng một mô hình Markov bình thường, sẽ xây dựng một một mô hình PNZ phản ánh tất cả các quá trình thực thi có thể của cấu trúc đa loại trừ với đầu vào I và các xác suất tương ứng, sau đó xây dựng mô hình thất bại cho IA tương đương từ mô hình PNZ

Hình 4.2 trình bày biểu đồ lớp của phần mềm được xây dựng.

Hình 4.2. Biểu đồ lớp của phần mềm dự đoán độ tin cậy

Một phần của tài liệu Mô hình đánh giá độ tin cậy hệ thống phần mềm (Trang 96)