Đăng ký Đăng nhập
Trang chủ Mô hình đánh giá độ tin cậy hệ thống phần mềm (tt)...

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

.PDF
27
12090
64

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 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: Phản biện 2: Phản biện 3: 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 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ế. 1 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. 2 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. 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. 3 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 đó. 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. 4 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: + 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. 5 + Xây dựng một số công cụ phần mềm hỗ trợ mô hình hóa độ tin cậy. 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: 𝑋(0) = [𝑟𝑆1 , 𝑟𝑆2 , … , 𝑟𝑆𝑛 ] + 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: 𝑃{𝑋(𝑡 + 𝑘) = Success} = 1 − ∑ 𝑃{𝑋(𝑡 + 𝑘) = Fail} 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ả: 6 - Young Min Kwon: mô hình hóa phần mềm gồm các trạng thái 𝐴, 𝐵, 𝐶. - 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 7 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 𝑀1 để 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. B A C 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 Avail = Pr{Hệ thống ở trạng thái 𝐴} Thời gian hệ thống ở trạng thái 𝐴 = Toàn thời gian (2.7)  Độ tin cậy: xác suất hệ thống hoạt động không thất bại Reli = Pr{H. thống ở tr. thái 𝐴 khi h. thống chưa trẻ hóa} Thời gian hệ thống ở trạng thái 𝐴 = Khoảng thời gian trước khi hệ thống trẻ hóa (2.8)  Độ an toàn: xác suất hệ thống không thất bại Safe = 1 − Pr{Hệ thống ở trạng thái 𝐵} Thời gian hệ thống ở trạng thái 𝐵 (2.9) =1− Toàn thời gian 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 8 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 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: 0 𝑃𝐴𝐵 𝑃𝐴𝐶 (2.10) 𝑃 = (1 0 0 ) 1 0 0 Từ đó ta có xác suất hệ thống ở các trạng thái là: 1 1 1 (2.14) 𝜋 = [𝜋𝐴 , 𝜋𝐵 , 𝜋𝐶 ] = [ , × 𝑃𝐴𝐵 , × 𝑃𝐴𝐶 ] 2 2 2 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: Avail = Pr{Hệ thống ở trạng thái 𝐴} 𝜋𝐴 × 𝐸[𝑈] (2.15) = 𝜋𝐴 × 𝐸[𝑈] + 𝜋𝐵 × 𝛾𝑓 + 𝜋𝐶 × 𝛾𝑟 Thay giá trị của 𝜋𝐴 , 𝜋𝐵 , 𝜋𝐶 vào ta có: 𝐸[𝑈] Avail = (2.16) 𝑃𝐴𝐵 × 𝛾𝑓 + 𝑃𝐴𝐶 × 𝛾𝑟 + 𝐸[𝑈]  Độ tin cậy: 𝐸[𝑈] (2.17) ReliI = 𝛿+𝜀 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: Safe = 1 − Pr{Hệ thống ở trạng thái 𝐵} 𝜋𝐵 × 𝛾𝑓 (2.18) =1− 𝜋𝐴 × 𝐸[𝑈] + 𝜋𝐵 × 𝛾𝑓 + 𝜋𝐶 × 𝛾𝑟 Thay giá trị của 𝜋𝐴 , 𝜋𝐵 , 𝜋𝐶 ta có: 𝑃𝐴𝐵 × 𝛾𝑓 𝑆 =1− (2.19) 𝐸[𝑈] + 𝑃𝐴𝐵 × 𝛾𝑓 + 𝑃𝐴𝐶 × 𝛾𝑟 9 2.2.4. Cài đặt thực nghiệm Thực nghiệm bao gồm: - 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 (𝐾 > 1) 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 10 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. - 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. 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 𝑚(𝑡) = 𝑎(1 − 𝑒 −𝑏𝑡 ) 𝜆(𝑡) = 𝑎𝑏𝑒 −𝑏𝑡 11 2. Mô hình trễ hình dạng S của Yamada 𝑚(𝑡) = 𝑎[1 − (1 + 𝑏𝑡)𝑒 −𝑏𝑡 ] 𝜆(𝑡) = 𝑎𝑏 2 𝑡𝑒 −𝑏𝑡 3. Mô hình Musa-Okumoto 𝑚(𝑡) = 𝑎 × ln(1 + 𝑏𝑡) 𝑎𝑏 𝜆(t) = 1 + 𝑏𝑡 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 𝑛 − 1 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. 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 12 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à 𝑡: 1 (3.28) 𝑏(𝑡) = 𝑏 × 1 + 𝛽𝑒 −𝑏𝑡 Chúng tôi đề xuất việc sử dụng hàm hình dạng S với 4 tham số: 1 + 𝑚 × 𝑒 −𝑏𝑡 (3.29) 𝑏(𝑡) = 𝑏 × 1 + 𝑛 × 𝑒 −𝑏𝑡 Hình 3.1. Hàm hình dạng S tổng quát với 𝑚 = 0.05 và 𝑚 = 0.7 Để đánh giá ảnh hưởng của sự xuất hiện tham số 𝑚, chúng tôi cố định các giá trị 𝑏 = 1 và 𝑛 = 1, xét lần lượt các hàm với 𝑚 = 0.05 (biểu diễn bằng đường nét đứt) và 𝑚 = 0.7 (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ố: 13 𝑚(𝑡) = 𝑒 −𝑏𝑘𝑡 × (𝑒 𝑏𝑡 + 𝑛)𝑘−1 × 𝑏 𝑡 × ∫ 𝑎(𝜏) × 𝑒 𝑏𝑘𝜏 × 0 𝑒 𝑏𝜏 + 𝑘𝑛 𝑑𝜏 (𝑒 𝑏𝜏 + 𝑛)𝑘 (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ở 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) 𝑎(𝑡) = 𝑎 = const 𝑘−1 𝑏𝑡 𝑒 +𝑛 (3.42) 𝑚(𝑡) = 𝑎 − 𝑎𝑒 −𝑏𝑘𝑡 × ( ) 1+𝑛 - Mô hình thứ hai 𝑘 (𝑒 𝑏𝑡 + 𝑛) (3.49) 𝑒 𝑏𝑘𝑡 𝑘−1 (3.52) 𝑚(𝑡) = 𝑎𝑒 −𝑏𝑘𝑡 × (𝑒 𝑏𝑡 + 𝑛) × [𝑒 𝑏𝑡 − 1 + 𝑏𝑘𝑛𝑡] 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 𝑎5 (𝑡) = 𝑎 × 14 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 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 GoelOkumoto. 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. 15 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. 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 16 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: 𝑎 𝛼 𝑚(𝑡) = [(1 − 𝑒 −𝑏𝑡 ) (1 − ) + 𝛼𝑡] (4.3) −𝑏𝑡 1 + 𝛽𝑒 𝑏 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ỏ: - 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: 𝐸(𝑇) = 𝐸1 + 𝐸2 + 𝐸3 (4.8) = 𝐶1 × 𝑇 + 𝐶2 × 𝑚(𝑇) × 𝜇𝑌 + 𝐶3 [1 − 𝑅(𝑥|𝑇)] 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. 17 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 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 18
- Xem thêm -

Tài liệu liên quan

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