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

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

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

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

4.1.1.3. Hƣớng dẫn sử dụng phần mềm

Việc thao tác trên phần mềm trải qua các bước:

1. Mở CommandPrompt, đổi đường dẫn đến thư mục chứa RMPITool và chạy

java -jar RMPITool.jar -h

để in hướng dẫn sử dụng.

2. Với mỗi Case Study, sao chép file .xml tương ứng vào thư mục. Ví dụ (WebScan.xml)

3. Chạy

java -jar RMPITool.jar -v WebScan.xml Output.txt

86 4. Để lấy kết quả về tính tin cậy, chạy

java -jar RMPITool.jar -p WebScan.xml Output.txt

Kết quả Output.txt chứa thông tin dự đoán độ tin cậy. 5. Để mô phỏng kết quả (cho 1.000.000 lần thực hiện), chạy

java -jar RMPITool.jar -s WebScan.xml Output.txt

File Output.txt chứa kết quả mô phỏng. Thời gian thực hiện là 30 phút. Hình 4.3 cung cấp giao diện dòng lệnh của chương trình.

Hình 4.3. Giao diện sử dụng của phần mềm (adsbygoogle = window.adsbygoogle || []).push({});

4.1.1.4. Một vài trƣờng hợp thử nghiệm

a. Hệ thống WebScan: hệ thống cho phép người sử dụng tại máy tính để bàn scan một hoặc nhiều hình ảnh vào hệ thống quản lý tài liệu sử dụng trình duyệt, ví dụ như Internet Explorer.

87

Đầu tiên, chúng ta tính chính xác của đánh giá đầu vào (WebScan.xml) với tùy chọn

-v thông qua câu lệnh:

java -jar RMPITool.jar -v WebScan.xml Output.txt

Hình 4.4 minh họa trường hợp tồn tại file dữ liệu đầu vào WebScan.xml trong thư mục chứa file chạy và Hình 4.5 minh họa trường hợp còn lại. Tiếp theo, chúng ta đánh giá tính tin cậy với tùy chọn -p như Hình 4.6:

java -jar RMPITool.jar -p WebScan.xml Output.txt

Hình 4.5. Kiểm tra tính không xác thực của file đầu vào WebScan.xml

Hình 4.6. Tính toán giá trị dự đoán độ tin cậy hệ thống WebScan

88

# The input model is valid.

#==================================================================== # Predicted reliability: 0.9981865558446795

# Predicted probability for a signaled failure of 'CreatingDocumentFailure': 1.5764455152E-4 # Predicted probability for a signaled failure of 'ConfiguringScanFailure': 4.22706018E-4 # Predicted probability for a signaled failure of 'ServingRequestFailure': 2.25E-4

# Predicted probability for a signaled failure of 'AddingPageFailure': 2.9063232776269386E-4 # Predicted probability for a signaled failure of 'SavingDocumentFailure': 1.5098630021824724E-4 # Predicted probability for a signaled failure of 'ScanningFailure': 3.085747310766729E-4

# Predicted probability for a correct output: 0.9981865558446795

# Predicted probability for an erroneous output of 'ContentPropagatingFailure': 2.5790022674295393E-4

b. Hệ thống báo cáo dịch vụ của máy chủ vận chuyển tài liệu: máy chủ vận chuyển tài liệu là một hệ thống công nghiệp được thiết kế theo kiểu dịch vụ ngang. Báo cáo dịch vụ này cho phép tự động tạo báo cáo về các tài liệu đang bị dừng hoặc các tài liệu đã được phát hành. Đầu tiên, chúng ta tính chính xác của đánh giá đầu vào (ReportingService.xml) với tùy chọn -v:

java -jar RMPITool.jar -v ReportingService.xml Output.txt

Hình 4.7. Kiểm tra tính xác thực của file đầu vào ReportingService.xml

89

Hình 4.7 minh họa trường hợp tồn tại file dữ liệu đầu vào ReportingService.xml trong thư mục chứa file chạy và Hình 4.8 minh họa trường hợp còn lại.

Tiếp theo, chúng ta đánh giá tính tin cậy với tùy chọn -p như Hình 4.9:

java -jar RMPITool.jar -p ReportingService.xml Output.txt

Khi mở ra, Output.txt chứa nội dung như sau:

# The input model is valid.

#==================================================================== # Predicted reliability: 0.9965265141461841

# Predicted probability for a signaled failure of 'GeneratingReportFailure': 8.358405760218781E-4 # Predicted probability for a signaled failure of 'AttachmentInfoFailure': 2.3125941111905892E-4 # Predicted probability for a signaled failure of 'ProcessingRequestFailure': 6.21E-4

# Predicted probability for a signaled failure of 'FileInfoFailure': 2.3111582012268537E-4 # Predicted probability for a signaled failure of 'ViewingReportFailure': 1.1938622779509444E-6 # Predicted probability for a signaled failure of 'InfoFromLogFailure': 0.0

# Predicted probability for a signaled failure of 'InfoFromDBFailure': 1.1591544314958977E-7 # Predicted probability for a correct output: 0.9965265141461841 (adsbygoogle = window.adsbygoogle || []).push({});

# Predicted probability for an erroneous output of 'TimingPropagatingFailure': 4.945874260901095E-4 # Predicted probability for an erroneous output of 'ContentPropagatingFailure': 5.419180368322403E-4 # Predicted probability for an erroneous output of 'TimingPropagatingFailure,ContentPropagatingFailure': 5.164548059088931E-4

Hình 4.9. Tính toán giá trị dự đoán độ tin cậy hệ thống 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 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. Ở đây, chúng tôi trình bày về hai phần mềm:

 Phần mềm Software Reliability Evaluator cài đặt một số mô hình thuộc nhóm sử dụng tiến trình Markov do chúng tôi xây dựng.

 Phần mềm NHPP Model Evaluator cài đặt một số mô hình thuộc nhóm sử dụng tiến trình Poisson không đồng nhất.

90

Tuy nhiên, cả hai phần mềm đều sử dụng một kiến trúc chung khi xây dựng, sự khác biệt chỉ là các lớp cài đặt các mô hình. Do đó chúng tôi chỉ trình bày các thông số kĩ thuật của phần mềm thứ nhất.

4.1.2.1. Biểu đồ lớp và giao diện chƣơng trình

Kiến trúc phần mềm được thiết kế như sau:

 Một nhóm các lớp chung phục vụ cho hoạt động của phần mềm.

 Mỗi mô hình sẽ được cài đặt trên một lớp mới với các tính toán toán học của riêng mô hình.

Hình 4.10. Biểu đồ lớp của phần mềm Software Reliability Evaluator

Ở đây, chúng tôi sẽ trình bày minh họa về mô hình Jelinski-Moranda là mô hình cơ bản nhất của nhóm mô hình dựa trên tiến trình Poisson không đồng nhất. Phần mềm gồm các lớp thực hiện các công việc sau:

 Lớp DataSet: lưu trữ tập dữ liệu được người dùng nhập vào từ file.

 Lớp Drawable_JPanel: kế thừa từ lớp JPanel, dùng để vẽ đồ họa so sánh giữa dữ liệu quan sát thực tế (các vạch màu đỏ) và dữ liệu ước tính của mô hình (các vạch màu xanh) như minh họa trong vùng Geomatric Comparison ở giao diện trong Hình 4.11

 Lớp Evaluator: thực hiện các so sánh toán học như đã trình bày tại tiểu mục 3.1.1.

 Lớp SoftwareReliabilityEvaluator_MainClass: lớp chính của chương trình, thực hiện các chức năng hoạt động chính.

91

 Lớp EquationSolver: sử dụng phương pháp Newton giải gần đúng các phương trình thu được khi sử dụng phương pháp thế để giải hệ phương trình hợp lý.  Lớp JelinskiMorandaModel: cài đặt các tính toán toán học của mô hình

Jelinski Moranda.

Sử dụng plug-in ObjectAid UML Explorer xây dựng biểu đồ lớp như Hình 4.10.

Hình 4.11. Giao diện phần mềm Software Reliability Evaluator

Chương trình được dịch ra với tên SoftwareReliabilityEvaluator.jar là dạng file chạy của Java. Giao diện chương trình như Hình 4.11 gồm các khu vực:

① Cho phép người dùng nhập dữ liệu từ các tập dữ liệu theo định dạng được định nghĩa trước.

② Dùng để lựa chọn mô hình trong danh sách các mô hình.

③ Dùng để hiển thị các kết quả so sánh.

④ Dùng để thực hiện việc giải mô hình và cung cấp thông tin về phần mềm.

⑤ Hiển thị so sánh về mặt hình học giữa dữ liệu thực tế quan sát được và các ước tính của mô hình.

4.1.2.2. Cách thức sử dụng phần mềm (adsbygoogle = window.adsbygoogle || []).push({});

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: người dùng có thể nhập dữ liệu từ một file text thông qua lựa chọn từ một cửa sổ dạng Explorer của hệ điều hành. Phần mềm cung cấp sẵn một số tệp dữ liệu phổ biến để người dùng tham khảo.  Chức năng lựa chọn mô hình: từ danh sách sổ xuống các mô hình, người dùng

lựa chọn mô hình cần dùng. ① ② ③ ④ ⑤

92

 Chức năng tính toán: chỉ có thể thực hiện khi người dùng đã chọn dữ liệu và mô hình. Nếu mô hình là giải được với bộ dữ liệu đã chọn, phần mềm sẽ hiển thị cụ thể các thông số đã được mô hình ước lượng. Ngược lại, phần mềm không hiển thị gì.

 Chức năng hiển thị so sánh trực quan: các dữ liệu được quan sát thực và dữ liệu do mô hình ước tính được trình bày trên hai trục thời gian song song, giúp người dùng so sánh giữa chúng.

Từ đó ta có kịch bản ba bước sử dụng như sau:

Bƣớc 1. Lựa chọn dữ liệu thực.

Bƣớc 2. Lựa chọn mô hình.

Bƣớc 3. Sử dụng chức năng Calculate để tính toán mô hình.

Các thông số do mô hình cung cấp sẽ tự động hiển thị ra nếu mô hình giải được.

4.1.3. Các địa chỉ công bố các phần mềm đã xây dựng

Chúng tôi cung cấp các phần mềm này tại các địa chỉ sau: 1. Trang cá nhân tại địa chỉ:

http://www.soict.hust.edu.vn/~thanghq/TSSRM.rar 2. Trang lưu trữ trực tuyến Google Drive tại địa chỉ:

https://drive.google.com/file/d/0BxKYFTOAcywnZ3RGZzU0MWhQM1k/view? 3. Trang lưu trữ trực tuyến Dropbox tại địa chỉ:

https://www.dropbox.com/s/c95fpwucpvdwa52/TSSRM.rar?dl=0 4. Trang lưu trữ trực tuyến Box tại địa chỉ:

https://app.box.com/s/fvbdq4ilmjsqw3bxguux1u1alfjc22dp

4.2. Ứng dụng độ tin cậy trong chính sách phát hành phần mềm tối ƣu

Như đã giới thiệu ở chương 1, độ tin cậy là một trong những độ đo quan trọng và nhiều ứng dụng thực tế ở các pha khác nhau của vòng đời phần mềm. Trong mục 4.2 này, chúng tôi xin giới thiệu một ứng dụng rất trực quan của mô hình độ tin cậy PNZ trong xây dựng mô hình tính toán thời điểm phát hành tối ưu.

4.2.1. Tính toán chi phí phát hành sử dụng yếu tố rủi ro dựa trên mô hình PNZ PNZ

4.2.1.1. Mô hình PNZ và tham số của mô hình dựa trên dữ liệu NTDS

Ta có các hàm đặc trưng của mô hình PNZ [29] như sau:

(4.1)

93 và: ( ) (4.3) và: (4.4) Dựa trên dữ liệu của Hải quân Hoa Kỳ trình bày ở phụ lục B.4, Phạm Hoàng ước lượng các tham số của mô hình PNZ như sau [26]:

Thay các giá trị cụ thể trên ta có:

(adsbygoogle = window.adsbygoogle || []).push({});

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

Phạm Hoàng [26] đề xuất sử dụng một số kí hiệu như trong Bảng 4.1 sau.

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

Kí hiệu Ý nghĩa

Số lỗi kì vọng được phát hiện ra đến thời điểm Thời gian tính toán

Hàm độ tin cậy của phần mềm đến thời điểm cho thời gian tính toán Thời điểm phát hành phần mềm

Chi phí kiểm thử trên một đơn vị thời gian Chi phí gỡ mỗi lỗi trên một đơn vị thời gian Chi phí rủi ro khi phần mềm gặp trục trặc

Tổng chi phí kì vọng đến thời điểm

Tổng số lỗi đã được phát hiện đến thời điểm Thời gian để gỡ lỗi

Thời gian trung bình để gỡ bỏ một lỗi

Từ đó đó, 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 và chi phí rủi ro do thất bại của hệ thống.

 Chi phí kiểm thử: bằng tổng thời gian kiểm thử nhân với chi phí trên mỗi đơn vị thời gian.

94

 Chi phí gỡ lỗi trong quá trình kiểm thử: bằng tổng thời gian gỡ tất cả các lỗi nhân với chi phí gỡ lỗi trên mỗi đơn vị thời gian:

* ∑

+ (4.6)  Chi phí rủi ro do thất bại của hệ thống: bằng xác suất hệ thống thất bại nhân

với chi phí rủi ro.

(4.7) Khi đó tổng chi phí đến khi phát hành phần mềm sẽ là:

(4.8) Với các giá trị , , , và cho trước, cần tìm giá trị sao cho tổng chi phí trên là tối thiểu.

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

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ì

Trước hết, chúng tôi đề xuất một phương án tính toán chi phí như sau, dựa trên thực tế tham khảo thống kê thu nhập thực tế tại Hoa Kì. Các số liệu được chúng tôi thu thập dựa trên các khảo sát từ các nguồn tài liệu (năm 2014):

 Số ngày làm việc trong năm [10]: 251 ngày.

 Theo Iberle [47], tỉ lệ số lượng kiểm thử viên: lập trình viên trong các dự án phần mềm là 1:4. Chúng tôi đề xuất dự án gồm 5 kiểm thử viên và 20 lập trình viên.

 Chi phí kiểm thử: theo TotalJob [15], mức lương trung bình theo năm của kiểm thử viên phần mềm tại Hoa Kì trung bình là 37.500£ tức 63.007$, gồm 251 ngày và dự án có 5 kiểm thử viên tức chi phí kiểm thử là:

($/ngày).

 Chi phí gỡ lỗi: theo TotalJob [14], mức lương trung bình theo năm của lập trình viên phần mềm tại Hoa Kì trung bình là 42.500£ tức 71.430$ gồm 251 ngày làm việc và dự án cần 20 lập trình viên tức mức chi phí lập trình là: (adsbygoogle = window.adsbygoogle || []).push({});

($/ngày).

 Thời gian gỡ lỗi: với dự án gồm 20 lập trình viên, ước tính thời gian trung bình để gỡ lỗi là 1 ngày/lỗi.

 Chi phí rủi ro: bao gồm tiền khắc phục hậu quả, đền bù hợp đồng, sự suy giảm thương hiệu, v.v… Chúng tôi đề xuất chi phí 2.000.000$.

95

Bộ tham số 1#

Tham số

Giá trị 1.255 5.692 2.000.000 1 1 Đơn vị $/ngày $/ngày $ ngày ngày

Thực hiện các tính toán thu được số liệu thể hiện ở Hình 4.12 và Hình 4.13 với bộ tham số 1#. Nhìn vào Hình 4.12 thấy: hàm sẽ tăng lên đến một giá trị

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