Đăng ký Đăng nhập
Trang chủ Luận văn tiến sĩ mô hình đánh giá độ tin cậy hệ thống phần mềm...

Tài liệu Luận văn tiến sĩ mô hình đánh giá độ tin cậy hệ thống phần mềm

.PDF
153
155
111

Mô tả:

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 30 tháng 7 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 hoà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 Toán - Công nghệ. Nhà trường và khoa đã hỗ trợ, tạo điều kiện cho tôi trong quá 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 ................................................................. xiv 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 toá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ử quá 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 Hoà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 ....................... 9 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 quá 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 ........................................................ 13 1.3.2.2. Mô hình Cai ....................................................................................... 14 1.3.2.3. Mô hình Tohma ................................................................................. 15 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 ........................................................ 19 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 .. 23 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 hoàn hảo ..................... 31 1.4.2.5. Nhóm mô hình chữa lỗi mang tính không hoà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 ........................................ 34 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 ................................................................. 36 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 ....... 36 2.1.1. Kịch bản sử dụng tiến trình Markov đánh giá độ tin cậy ........................... 36 v 2.1.1.1. Nguyên lý áp dụng tiến trình Markov................................................ 36 2.1.1.2. Quy trình đánh giá độ tin cậy ............................................................ 37 2.1.2. Cài đặt thực nghiệm .................................................................................... 38 2.1.2.1. Cài đặt thử nghiệm 1 .......................................................................... 38 2.1.2.2. Cài đặt thử nghiệm 2 .......................................................................... 40 2.1.2.3. Cài đặt thử nghiệm 3 .......................................................................... 42 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 ............ 43 2.2.1. Sự trẻ hóa của hệ thống phần mềm ............................................................ 43 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 ................................................................................................. 44 2.2.2.1. Mô hình hóa hệ thống ........................................................................ 44 2.2.2.2. Các độ đo chất lượng của hệ thống phần mềm .................................. 46 2.2.3. Tính toán các tham số của mô hình ............................................................ 47 2.2.3.1. Tính toán với điều khoản I ................................................................. 47 2.2.3.2. Tính toán với điều khoản II ............................................................... 49 2.2.4. Cài đặt thực nghiệm .................................................................................... 51 2.2.4.1. Kết quả mô phỏng 1 ........................................................................... 51 2.2.4.2. Kết quả mô phỏng 2 ........................................................................... 55 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.... 57 2.3. Kết chƣơng ....................................................................................................... 61 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 ........................ 63 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.............................................................. 63 3.1.1. Các hàm độ đo tiêu chuẩn để so sánh ......................................................... 63 3.1.2. Phương thức tính toán độ đo tổng quát ...................................................... 64 3.1.2.1. Tính toán các giá trị của mỗi độ đo tiêu chuẩn cho các mô hình ...... 65 3.1.2.2. Tính toán trọng số cho mỗi độ đo tiêu chuẩn .................................... 65 3.1.2.3. Tính giá trị đã được tính đến trọng số cho mỗi độ đo tiêu chuẩn ...... 66 3.1.2.4. Tính giá trị độ đo tổng hợp ................................................................ 66 3.1.3. Cài đặt thực nghiệm .................................................................................... 66 3.1.3.1. Các mô hình được thực nghiệm ......................................................... 66 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ì ... 67 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 ...... 68 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 ................................................................................................. 68 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 ............................ 70 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............................................................... 70 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............................................. 70 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 ................. 71 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 ...................................... 72 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 .................................................................. 72 3.2.2.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 ....... 73 3.2.3. Tính toán toán học cho mô hình độ tin cậy phần mềm NHPP cải tiến ...... 73 3.2.3.1. Các tính toán tổng quát ...................................................................... 73 3.2.3.2. Hàm biểu diễn tổng số lỗi là hằng số ................................................. 74 3.2.3.3. Hàm biểu diễn tổng số lỗi theo thời gian ........................................... 75 3.2.4. Các tính toán vi phân của hai mô hình ....................................................... 77 3.2.4.1. Mô hình thứ nhất................................................................................ 77 3.2.4.2. Mô hình thứ hai.................................................................................. 78 3.2.5. Cài đặt thực nghiệm .................................................................................... 78 3.2.5.1. Môi trường cài đặt thực nghiệm ........................................................ 78 3.2.5.2. Cài đặt tính toán hai mô hình trên ngôn ngữ Matlab ......................... 78 3.2.5.3. Kết quả thực nghiệm ước lượng tham số mô hình thứ nhất .............. 79 3.2.5.4. Kết quả thực nghiệm ước lượng tham số mô hình thứ hai ................ 80 3.3. Kết chƣơng ....................................................................................................... 81 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 .............................................................. 82 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 ......... 83 vii 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 .......................................................................... 83 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 ..................................................................................... 83 4.1.1.2. Cấu trúc phần mềm ............................................................................ 83 4.1.1.3. Hướng dẫn sử dụng phần mềm .......................................................... 85 4.1.1.4. Một vài trường hợp thử nghiệm ......................................................... 86 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 ................................................................. 89 4.1.2.1. Biểu đồ lớp và giao diện chương trình .............................................. 90 4.1.2.2. Cách thức sử dụng phần mềm............................................................ 91 4.1.3. Các địa chỉ công bố các phần mềm đã xây dựng ....................................... 92 4.2. Ứng dụng độ tin cậy trong chính sách phát hành phần mềm tối ƣu .......... 92 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 92 4.2.1.1. Mô hình PNZ và tham số của mô hình dựa trên dữ liệu NTDS ........ 92 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 ....... 93 4.2.2. Cài đặt thực nghiệm .................................................................................... 94 4.2.2.1. Tính toán chi phí phát hành tối ưu với chi phí thực tại Hoa Kì ......... 94 4.2.2.2. Tính toán chi phí phát hành tối ưu với chi phí thực tại Việt Nam ..... 95 4.2.2.3. Đánh giá ảnh hưởng của các tham số lên giá trị của ................... 97 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 .................................................. 100 4.3.1. Các kĩ thuật cơ bản trong phát triển ứng dụng Java ................................. 100 4.3.1.1. Tối ưu mã nguồn .............................................................................. 100 4.3.1.2. Lập trình an toàn .............................................................................. 101 4.3.1.3. Cây cú pháp trừu tượng ................................................................... 101 4.3.2. Luật và việc áp dụng trên cây cú pháp trừu tượng ................................... 103 4.3.2.1. Xây dựng các luật ............................................................................ 103 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 . 103 4.3.2.3. Sử dụng các luật để thay đổi mã nguồn ........................................... 103 4.3.3. Cài đặt thực nghiệm .................................................................................. 104 4.3.3.1. Mô tả môi trường ............................................................................. 104 viii 4.3.3.2. Mô tả cấu trúc của Eclipse plug-in .................................................. 104 4.3.3.3. Kết quả thực nghiệm ........................................................................ 105 4.4. Kết chƣơng ..................................................................................................... 107 KẾT LUẬN VÀ KIẾN NGHỊ .................................................................... 109 Kết luận ................................................................................................................. 109 Đóng góp khoa học của luận án........................................................................... 110 Định hƣớng phát triển.......................................................................................... 111 TÀI LIỆU THAM KHẢO .......................................................................... 112 DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN .... 121 PHỤ LỤC ..................................................................................................... 122 Phụ lục A. Cài đặt tính toán hai mô hình trên ngôn ngữ Matlab ................. 122 A.1. Mô hình thứ nhất ...................................................................................... 122 A.2. Mô hình thứ hai ........................................................................................ 124 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 .................................................... 128 B.1. Gói dữ liệu kiểm thử online của Ohba (#1) .............................................. 128 B.2. Hệ thống truyền thông online của Phạm Hoàng (#2) ............................... 128 B.3. Tập dữ liệu của Misra (#3) ....................................................................... 129 B.4. Hệ thống dữ liệu chiến thuật Hải quân Hoa Kỳ của Goel (#4) ................ 129 B.5. Dữ liệu về dự án phần mềm của công ty Tandem (#5) ............................ 130 B.6. Gói dữ liệu phần mềm online phát triển bởi IBM (#6) ............................ 131 B.7. Dự án hệ thống T của AT&T của Ehrlich (#7) ........................................ 131 B.8. Dữ liệu từ hệ thống điều khiển thời gian thực của Tohma (#8) ............... 131 B.9. Dữ liệu từ hệ thống điều khiển thời gian thực của Lyu (#9) .................... 132 B.10. Dữ liệu điều khiển và ra lệnh thời gian thực của Musa (#10) .................. 134 B.11. Dữ liệu kiểm thử hệ thống truyền thông của Zhang (#11) ....................... 134 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 ........................................ 59 Bảng 3.1. Tham số của các mô hình với dữ liệu NTDS ........................................... 67 Bảng 3.2. Giá trị độ đo tiêu chuẩn của 6 mô hình với dữ liệu NTDS ...................... 67 Bảng 3.3. Giá trị độ đo tổng hợp của 6 mô hình với dữ liệu NTDS ........................ 68 Bảng 3.4. Tham số các mô hình với dữ liệu của Ohba ............................................ 68 Bảng 3.5. Xếp hạng khả năng dự đoán của các mô hình ......................................... 69 Bảng 4.1. Các kí hiệu trong mô hình tính toán chi phí phát hành tối ưu ................ 93 Bảng 4.2. Thời gian chạy của các phương thức của BKProfile ............................ 107 Bảng B.1. Gói dữ liệu kiểm thử online của Ohba (1980) (#1) .............................. 128 Bảng B.2. Hệ thống truyền thông online của Pham (2000) (#2) ........................... 129 Bảng B.3. Tập dữ liệu của Misra (1983) (#3) ....................................................... 129 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) 130 Bảng B.5. Dữ liệu về dự án phần mềm của công ti Tandem (1996) (#5) .............. 130 Bảng B.6. Gói dữ liệu phần mềm online phát triển bởi IBM (1984)(#6) .............. 131 Bảng B.7. Dự án hệ thống T của AT&T của Ehrlich (1993) (#7) ......................... 131 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) 132 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) ..... 133 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) . 134 Bảng B.11. Dữ liệu kiểm thử hệ thống truyền thông của Zhang (2002) (#11) ...... 134 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)................................................ 29 Hình 2.1. Tiến trình Markov của thử nghiệm 1 ....................................................... 39 Hình 2.2. Mô hình hóa hệ thống của thử nghiệm 2 ................................................. 40 Hình 2.3. Tiến trình Markov của thử nghiệm 2 ....................................................... 41 Hình 2.4. Tiến trình Markov của thử nghiệm 3 ....................................................... 42 Hình 2.5. Mô hình trạng thái của hệ thống trẻ hóa ................................................. 44 Hình 2.6. Các trạng thái khi thực hiện trẻ hóa ........................................................ 45 Hình 2.7. Tiến trình Markov với .................................................................... 48 Hình 2.8. Tiến trình Markov với .................................................................... 50 Hình 2.9. Độ sẵn sàng dưới điều khoản I ................................................................ 52 Hình 2.10. Độ sẵn sàng dưới điều khoản II ............................................................. 52 Hình 2.11. Độ an toàn dưới điều khoản I với ........................................ 53 Hình 2.12. Độ an toàn dưới điều khoản I khi thay đổi ....................................... 53 Hình 2.13. Độ an toàn dưới điều khoản II khi thay đổi...................................... 54 Hình 2.14. Độ tin cậy dưới điều khoản I và II khi ................................. 54 Hình 2.15. Độ sẵn sàng dưới hai điều khoản khi thay đổi ................................... 55 Hình 2.16. Độ an toàn dưới hai điều khoản khi thay đổi ..................................... 56 Hình 2.17. Độ tin cậy dưới hai điều khoản khi thay đổi ...................................... 57 Hình 2.18. Sơ đồ khối của hệ thống BKOJ .............................................................. 58 Hình 2.19. Triển khai BKOJ trên hệ thống BKCloud .............................................. 58 Hình 2.20. Độ sẵn sàng của BKOJ dưới điều khoản I ............................................ 60 Hình 2.21. Độ an toàn của BKOJ dưới điều khoản I .............................................. 60 Hình 2.22. Độ tin cậy của BKOJ dưới điều khoản I ................................................ 60 Hình 3.1. Hình dạng của hàm hình dạng S tổng quát với và .. 71 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 ................ 72 Hình 4.1. Kịch bản dự đoán độ tin cậy phần mềm .................................................. 84 Hình 4.2. Biểu đồ lớp của phần mềm dự đoán độ tin cậy ....................................... 85 Hình 4.3. Giao diện sử dụng của phần mềm ........................................................... 86 Hình 4.4. Kiểm tra tính xác thực của file đầu vào WebScan.xml ............................ 86 Hình 4.5. Kiểm tra tính không xác thực của file đầu vào WebScan.xml ................. 87 xi Hình 4.6. Tính toán giá trị dự đoán độ tin cậy hệ thống WebScan ......................... 87 Hình 4.7. Kiểm tra tính xác thực của file đầu vào ReportingService.xml ............... 88 Hình 4.8. Kiểm tra tính không xác thực của file đầu vào ReportingService.xml .... 88 Hình 4.9. Tính toán giá trị dự đoán độ tin cậy hệ thống ReportingService ............ 89 Hình 4.10. Biểu đồ lớp của phần mềm Software Reliability Evaluator .................. 90 Hình 4.11. Giao diện phần mềm Software Reliability Evaluator ............................ 91 Hình 4.12. Giá trị của theo với bộ tham số 1# bắt đầu từ ngày thứ 1 ........ 95 Hình 4.13. Giá trị của theo với bộ tham số 1# trong các ngày 145-165 .... 95 Hình 4.14. Giá trị của theo với bộ tham số 2# bắt đầu từ ngày thứ 1 ........ 96 Hình 4.15. Giá trị của theo với bộ tham số 2# trong các ngày 178-188 .... 97 Hình 4.16. Giá trị của và với bộ tham số 4#, thay đổi ........................ 97 Hình 4.17. Giá trị của và với bộ tham số 5#, thay đổi ........................ 98 Hình 4.18. Giá trị của và với bộ tham số 6#, thay đổi ....................... 99 Hình 4.19. Giá trị của và với bộ tham số 7#, thay đổi .......................... 99 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.............. 102 Hình 4.21. Biểu đồ luồng dữ liệu của công cụ Eclipse plug-in ............................. 105 Hình 4.22. Kết quả thực nghiệm sử dụng CPU ..................................................... 106 Hình 4.23. Kết quả thực nghiệm sử dụng bộ nhớ .................................................. 106 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 toàn Mô hình độ tin cậy phần mềm 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ố 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 đó. 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 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 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 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 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 nhằm á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ế. 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: xiv  Đố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 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 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ử 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à hoà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. 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. xv 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 ứ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 toá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 toà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 các mô hình thuộc nhóm sử dụng tiến [6], [26], [37], Số 5 trình Poisson không đồng nhất và thử [56], [80] Đóng góp nghiệm khoa học thứ hai 3.2. Đánh giá khả năng áp dụng hàm [26], [28], [29], hình dạng S tổng quát cho mô hình độ Số 6 [53], [60], [61] tin cậy phần mềm dựa trên tiến trình xvi 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 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 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ạ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: 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 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. Thứ hai: 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: xvii (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 tổng quát hơn với 4 tham số. Dựa trên hàm hình dạng S tổng quát 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: 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 toá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 quá 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 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) Ngoài ra, để thuận tiện khi thực hiện các tính toán toán học, chúng ta có thể sử dụng hàm "loga-hợp lý (log-likehood)" , 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, giá trị cực đại. , của tham số là giá trị của để hàm hợp lý đạt Việc tìm giá trị đượ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 . Nếu tham số 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: (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 - Ma trận xác suất chuyển trạng thái . . 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 quá trình hoạt động bình thường và quá 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 với tập trạng thái rời rạc . Gọi là xác suất hệ thống ở trạng thái tại thời điểm . 2
- Xem thêm -

Tài liệu liên quan

Tài liệu xem nhiều nhất