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 Marko

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

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

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 Marko

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

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

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à:

($/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ị cực đại địa phương, sau đó giảm xuống một giá trị cực tiểu địa phương trước khi tăng trở lại. Tuy nhiên, nếu lựa chọn giá trị cực tiểu từ sớm quá sẽ không hợp lý vì số lượng lỗi trong hệ thống còn nhiều. Do đó cần tập trung vào tìm kiếm giá trị cực tiểu địa phương được nhắc đến ở trên. Thời gian phát hành phần mềm tối ưu là

ngày và tổng chi phí là

$

Hình 4.12. Giá trị của theo với bộ tham số 1# bắt đầu từ ngày thứ 1

Hình 4.13. Giá trị của theo với bộ tham số 1# trong các ngày 145-165

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

Tiếp theo, chúng tôi thu thập các số liệu từ các nguồn thông tin chính thức của Bộ Thông tin và Truyền Thông: Sách trắng Công nghệ thông tin Việt Nam 2013 [1].

 Số ngày làm việc, số kiểm thử viên và số lập trình viên vẫn là 251, 5 và 20 như tại thực nghiệm với số liệu của Hoa Kỳ.

96

 Theo Sách trắng về Công nghệ Thông tin và Truyền thông [1], mức lương trung bình theo năm của kĩ sư phần mềm tại Việt Nam trung bình là 5030$ tức 106 triệu VND. Theo khảo sát tại thực tế tại các công ty lớn tại Việt Nam, mức lương lập trình viên gấp 1.3 lần mức lương kiểm thử viên, từ đó có công thức để mức lương kĩ sư trung bình như trên ( : lương năm kiểm thử viên):

tr/năm.

 Mức lương theo năm của kiểm thử viên phần mềm tại Việt Nam trung bình là 85.5 tr, bao gồm 251 ngày làm việc và dự án có 5 kiểm thử viên tức mức chi phí kiểm thử sẽ là:

(tr/ngày).

 Mức lương theo năm của lập trình viên phần mềm tại Việt Nam trung bình là

tr, bao gồm 251 ngày làm việc và dự án có 20 lập trình viên tức mức chi phí lập trình sẽ là:

(tr/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í 10 tỉ VND.

Từ đó ta có bộ giá trị sau để thực hiện việc tính toán chi phí phát hành tối ưu:

Bộ tham số 2#

Tham số

Giá trị 1.7 8.8 10.000 1 1 Đơn vị tr/ngày tr/ngày tr ngày ngày

Hình 4.14. Giá trị của theo với bộ tham số 2# bắt đầu từ ngày thứ 1

Thực hiện các tính toán thu được Hình 4.14 và Hình 4.15 thể hiện giá trị của . Nhìn vào Hình 4.14 thấy: hàm sẽ tăng lên đến một giá trị cực đại địa phương, sau đó giảm xuống một giá trị cực tiểu địa phương trước khi tăng trở lại. Tuy nhiên, nếu lựa chọn giá trị cực tiểu từ sớm quá sẽ không hợp lý vì số lượng lỗi trong hệ thống còn nhiều. Do đó cần tập trung vào tìm kiếm giá trị cực tiểu địa phương được nhắc đến ở trên. Thời gian phát hành phần mềm tối ưu là

ngày và tổng chi phí là

97

triệu

Hình 4.15. Giá trị của theo với bộ tham số 2# trong các ngày 178-188

4.2.2.3. Đánh giá ảnh hƣởng của các tham số lên giá trị của

Để đánh giá ảnh hưởng của các tham số đến giá trị chi phí phát hành tối ưu của phần mềm, chúng tôi thực hiện các phép thay đổi giá trị tham số sau. Từ công thức (4.8), nếu đặt và , tức là coi là hằng số và so sánh tương đối , với , ta có công thức:

(4.9)

Do đó để đánh giá ảnh hưởng của các loại chi phí lên nhau trong mô hình này, chúng tôi chỉ cần thay đổi giá trị , , và sau đó phân tích sự tăng giảm của

bởi sự thay đổi đó. Do đó, chúng tôi đề xuất bộ tham số cơ sở như sau:

Bộ tham số 3#

Tham số

Giá trị 3 10.000 1 1

Lần lượt ta có các trường hợp:

Trƣờng hợp 1. Thời gian gỡ lỗi trung bình , khoảng thời gian tính toán và là hằng số; thay đổi.

98

Bộ tham số 4#

Tham số

Giá trị - 10.000 1 1

Ta có đồ thị như Hình 4.16 biểu hiện sự thay đổi của và theo giá trị của . Từ đó ta có các nhận xét:

 giảm ổn định với biên độ thấp khi tăng với

.

 tăng ổn định khi tăng và có một điểm thay đổi độ dốc tại khoảng

.

Trƣờng hợp 2. Thời gian gỡ lỗi trung bình , khoảng thời gian tính toán và là hằng số; thay đổi.

Bộ tham số 5#

Tham số

Giá trị 3 - 1 1

Ta có đồ thị như Hình 4.17 biểu hiện sự thay đổi của và theo giá trị của . Từ đó ta có các nhận xét:

 tăng nhanh ở giai đoạn đầu và tiệm cận một giá trị hằng số khi tăng.  tăng ổn định khi tăng và độ dốc của đường tăng là khá lớn (khoảng

300).

Hình 4.17. Giá trị của với bộ tham số 5#, thay đổi

Trƣờng hợp 3. Khoảng thời gian tính toán và , là hằng số; thời gian trung bình để gỡ lỗi thay đổi.

Bộ tham số 6#

Tham số

Giá trị 3 10.000 - 1

Ta có đồ thị như Hình 4.18 biểu hiện sự thay đổi của và theo giá trị của . Từ đó ta có các nhận xét:

 giảm ổn định với biên độ thấp khi tăng với

99

 tăng ổn định khi tăng và độ dốc của đường tăng không lớn (~ 150).

Hình 4.18. Giá trị của với bộ tham số 6#, thay đổi

Trƣờng hợp 4. Thời gian trung bình để gỡ lỗi và , là hằng số; khoảng thời gian tính toán thay đổi.

Bộ tham số 7#

Tham số

Giá trị 3 10.000 1 -

Ta có đồ thị như Hình 4.19 biểu hiện sự thay đổi của và theo giá trị của . Từ đó ta có các nhận xét:

 tăng ổn định với biên độ khá cao khi tăng.

 tăng ổn định tăng với đường tăng có độ dốc cao (khoảng 300).

Hình 4.19. Giá trị của với bộ tham số 7#, thay đổi

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 khi tham số dao động quanh bộ tham số 1#.  Chi phí phát hành tăng khi các tham số tăng.

100

 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

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

Tải bản đầy đủ (PDF)

(153 trang)