1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

27 1,1K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 886,09 KB

Nội dung

- Đá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

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trang 2

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:

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

Trang 3

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ế

Trang 4

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

Trang 5

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

Trang 6

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 đó

Trang 7

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:

Trang 8

+ 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

Trang 9

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) =

Trang 10

- 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 𝑀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

Trang 11

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 𝐵}

= 1 −Thời gian hệ thống ở trạng thái 𝐵

Toàn thời gian

(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

Trang 12

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

𝑆 = 1 − 𝑃𝐴𝐵× 𝛾𝑓

𝐸[𝑈] + 𝑃𝐴𝐵× 𝛾𝑓+ 𝑃𝐴𝐶× 𝛾𝑟 (2.19)

2.2.4 Cài đặt thực nghiệm

Thực nghiệm bao gồm:

Trang 13

- Thay đổi các tham số nhằm đánh giá ảnh hưởng lên giá trị các

- 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

độ đ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

Ngày đăng: 17/08/2015, 15:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w