Kết quả thực nghiệ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 123)

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

4.3.3.3. Kết quả thực nghiệm

Chúng tôi so sánh hiệu suất của hệ thống trước và sau khi sử dụng tối ưu hóa mã nguồn và kỹ thuật lập trình an toàn. Bảng 4.2 cho thấy thời gian chạy của các phương thức giảm rõ ràng khi áp dụng tối ưu hóa mã nguồn và kỹ thuật lập trình an

toàn. Sự sụt giảm lớn nhất được thể hiện ở phương thức

getTopicDetailsTask() với 33.53% và sự sụt giảm này cho thấy chất lượng của các mã nguồn được cải thiện rõ rệt.

Analyzer Configuration

Loader

Rule Configuration

Preprocessor

Rule Analyzer Rule Condition

Checker

Display Problem Unit

Refactoring Unit

Java Project List

Problem List project information rule-related configuration collected elements rule configuration elements to be checked result detail problem information result element to be checked detail problem information simple problem information

106

Chú thích. BKProfile là một dịch vụ web thông minh, hỗ trợ thông tin liên lạc giữa các giảng viên, công ty, sinh viên và cựu sinh viên thông qua hồ sơ cá nhân. Nó được xây dựng theo hình thức hệ thống hỏi đáp-trả lời: người dùng chia sẻ kiến thức của mình thông qua việc đưa ra câu hỏi hoặc trả lời các câu hỏi của người khác.

Hình 4.22. Kết quả thực nghiệm sử dụng CPU

107

Bảng 4.2. Thời gian chạy của các phương thức của BKProfile

ID Chƣơng trình Phƣơng thức Số lần chạy Thời gian chạy(ms) Cải thiện (%) Trƣớc Sau 1-1 QuickSort generateArray 1 2703 2671 1.18 1-2 QuickSort sort 1 36558 25362 30.63 2-1 BKProfile getTopStatsTask 10000 114 107 6.14 2-2 BKProfile getTopicDetailsTask 10000 68 45.2 33.53 2-3 BKProfile getAnswersTask 20000 1005 951 5.37 2-4 BKProfile getQuestionDetailTask 20000 135 132 2.22 2-5 BKProfile getSimilarQuestionsTask 20000 210 188 10.48 2-6 BKProfile getFollowersTask (1) 20000 266 204 23.31 2-7 BKProfile getFollowersTask (2) 20000 143 113 20.98

Phép đánh giá thứ hai là về việc sử dụng tài nguyên hệ thống: bộ nhớ và CPU, thông qua thông tin thực chạy các hàm chính của hệ thống BKProfile. Hình 4.22 và Hình 4.23 hiển thị so sánh các tài nguyên hệ thống sử dụng trước và sau tối ưu hóa. Hình 4.22 chỉ ra rằng sau khi áp dụng các kỹ thuật tối ưu hóa sẽ giảm sử dụng CPU, cả thông số sử dụng tối đa và trung bình. Hình 4.23 hiển thị thống kê về sử dụng heap. Heap lưu trữ tất cả các đối tượng được tạo ra bởi Java trong thời gian chạy và được đánh giá bởi hai thông số: kích thước và kích thước được sử dụng. Hình 4.23, cho thấy có hai cải tiến của việc sử dụng bộ nhớ:

1. Kích thước heap sử dụng ít hơn trước đây.

2. Hiệu quả sử dụng heap là tốt hơn: tỉ lệ trung bình kích thước heap được sử dụng trên kích thước heap tăng lên.

Từ những lý thuyết và kết quả thực nghiệm được trình bày trong tiểu mục, tác giả luận án rút ra các nhận xét sau:

 Các kĩ thuật lập trình an toàn và tối ưu mã nguồn ảnh hưởng nhất định đến hiệu năng của hệ thống.

 Để mở rộng công việc, có thể quan tâm đến: (1) Việc mở rộng tập luật. (2) Quá trình thay đổi cập nhật mã nguồn có thể được thực hiện tự động hoặc bán tự động.

Kết quả nghiên cứu trong phần này đã được công bố năm 2013 trong công trình số 1 trong danh mục các công trình đã công bố của luận án.

4.4. Kết chƣơng

Chương 4 trình bày các nội dung liên quan đến dự đoán, tính toán và ứng dụng độ đo độ tin cậy phần mềm trong thực tế, là nội dung nghiên cứu thứ ba trong luận án. Thông qua các nghiên cứu thực hiện tại chương này, luận án đưa ra một số tổng kết cho nội dung này như:

 Nhằm đưa ứng dụng của mô hình độ tin cậy phần mềm vào ứng dụng thực tế, luận án đã trình bày các sản phẩm phần mềm thực tế do tác giả và nhóm đồng nghiệp xây dựng. Các ứng dụng được xây dựng trên ngôn ngữ Java với mã nguồn hoàn toàn công khai, kiến trúc mở cho phép bổ sung thêm các mô hình.

108

 Độ đo độ tin cậy là một tham số quan trọng trong mô hình tính toán chi phí phát hành có xét đến yếu tố rủi ro. Nếu phát hành quá sớm, những rủi ro tiềm ẩn của phần mềm sẽ phát sinh những chi phí không mong muốn rất lớn. Nếu phát hành quá muộn, chi phí phát triển sản phẩm sẽ tăng lên quá cao. Việc sử dụng các tính toán toán học sẽ giúp định vị được thời gian hợp lý nhất để phát hành phần mềm. Các thực nghiệm trên các dữ liệu thực tại Hoa Kỳ và Việt Nam cho thấy tỉ lệ chi phí rủi ro trên chi phí kiểm thử tác động rất mạnh lên tổng chi phí phát hành.

 Các kết quả thực nghiệm đã cho thấy việc áp dụng các luật trong quá trình lập trình và phát triển sản phẩm Java đem lại những lợi ích đáng kể. Hiệu quả hoạt động của hệ thống, trong đó bao gồm cả ước lượng về tính tin cậy, đã được cải thiện rõ rệt.

109

KẾT LUẬN VÀ KIẾN NGHỊ

Kết luận

Khi thực hiện các nghiên cứu trong luận án, chúng tôi tập trung vào mô hình hóa nhằm đánh giá độ tin cậy hệ thống phần mềm. Mô hình hóa độ tin cậy phần mềm là một lĩnh vực lý thuyết sử dụng các công cụ toán học nhằm mô hình hóa một sản phẩm phần mềm, từ đó đưa ra tính toán về các độ đo liên quan đến độ tin cậy. Các nghiên cứu của chúng tôi sử dụng các cách tiếp cận dựa trên tiến trình Markov và tiến trình Poisson không đồng nhất.

Tiến trình Markov với đặc tính phi kí ức hoàn toàn thích hợp để mô hình hóa các dạng trạng thái khác nhau của phần mềm. Xuất phát từ đó, chúng tôi đã đề xuất quy trình hoàn thiện để áp dụng tiến trình Markov trong mô hình quá trình hoạt động của hệ thống phần mềm. Từ các kết quả thực nghiệm, chúng tôi nhận thấy sự lệ thuộc rất lớn của cách thức mô hình các trạng thái và xác suất các phép chuyển trạng thái đến giá trị độ đo độ tin cậy của hệ thống. Ngoài ra, chúng tôi đã áp dụng tiến trình Markov trong xây dựng công thức toán học nhằm đánh giá các thuộc tính chất lượng của hệ thống phần mềm dưới hai điều khoản khác nhau. Các kết quả thực nghiệm trên hệ thống thực với kiến trúc đám mây đã chứng minh tính đúng đắn của các tính toán toán học đó.

Tiến trình Poisson không đồng nhất được sử dụng trong các nghiên cứu của luận án là một dạng đặc biệt của tiến trình Markov với các khoảng thời gian giữa các thất bại tuân theo phân phối Poisson. Xuất phát từ nhu cầu đánh giá, so sánh các mô hình trong nhóm sử dụng tiến trình Poisson không đồng nhất, chúng tôi đề xuất kịch bản tính toán độ đo tổng quát dựa trên các độ đo tiêu chuẩn đơn. Các kết quả thực nghiệm cho thấy sự khác biệt rõ ràng giữa so sánh các mô hình khi sử dụng độ đo tổng quát và khi quan tâm đến khả năng dự đoán thời điểm xảy ra lỗi tiếp theo. Bên cạnh đó, tuy đã có những ứng dụng nhất định trong nhóm mô hình dựa trên tiếp trình Poisson không đồng nhất nhưng hàm hình dạng S với 3 tham số vẫn đặt ra những giới hạn nhất định. Do đó, chúng tôi đề xuất hàm hình dạng S tổng quát hơn với 4 tham số và đánh giá khả năng xây dựng mới các mô hình dựa trên hàm này. Các kết quả thực nghiệm của chúng tôi cho thấy các mô hình được đề xuất có những giá trị nhất định khi tính toán với các bộ dữ liệu chuẩn.

Nhằm ứng dụng mô hình độ tin cậy phần mềm trong thực tế, chúng tôi đã phát triển một số công cụ cài đặt các vấn đề lý thuyết liên quan đến mô hình độ tin cậy hệ thống phần mềm. Ứng dụng đầu tiên liên quan đến sự ảnh hưởng của thông số độ tin cậy đến chính sách và thời điểm phát hành phần mềm có quan tâm tới yếu tố rủi ro. Các kết quả thực nghiệm đã chỉ ra sự tương đồng giữa môi trường tại Hoa Kỳ và tại Việt Nam, đồng thời cho thấy sự ảnh hưởng rõ rệt của tham số chi phí rủi ro lên tổng chi phí phát hành phần mềm. Trong nhóm ứng dụng thứ hai, chúng tôi đã thực hiện việc cài đặt các mô hình toán học bằng những ngôn ngữ lập trình hiện đại như Java, Matlab nhằm hỗ trợ quá trình nghiên cứu của luận án cũng như người sử dụng độc lập khác. Ứng dụng thứ ba liên quan đến vấn đề lập trình an toàn và tối ưu hóa mã nguồn trong lập trình Java. Các kết quả thực nghiệm cho thấy hiệu quả

110

sử dụng tài nguyên, bao gồm cả các thông số liên quan tới độ tin cậy hệ thống phần mềm, đã được cải thiện một cách rõ rệt.

Đó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ại 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:

Đóng góp khoa học 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 để giải quyết hai bài toán:

(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.

Đóng góp khoa học 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:

(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.

111

Đóng góp khoa học 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.

Định hƣớng phát triển

Từ các nghiên cứu được thực hiện trong luận án, tác giả có các kiến nghị sau nhằm mở rộng các nghiên cứu hiện có:

 Chúng tôi đã thực hiện các nghiên cứu liên quan đến sử dụng tiến trình Markov để mô hình hóa hai dạng trạng thái của hệ thống phần mềm. Do đó chúng tôi đề xuất việc xét đến các dạng trạng thái khác trong quá trình phát triển và sử dụng phần mềm có thể đem lại những kết quả mới.

 Chúng tôi đã thực hiện được việc đánh giá hai mô hình mới dựa trên tiến trình Poisson không đồng nhất sử dụng hàm hình dạng S 4 tham số với những kết quả nhất định. Từ đó, chúng tôi đề xuất việc sử dụng các hàm phức tạp khác như hàm đa thức, hàm lượng giác vào trong xây dựng các mô hình mới hoàn toàn có thể được hỗ trợ từ các công cụ tính toán hiện đại mới.

 Trong thực tế, chúng tôi nhận ra sự khó khăn khi cài đặt các mô hình độ tin cậy hệ thống phần mềm còn nhiều khó khăn. Vấn đề này xuất phát chủ yếu từ khả năng giải gần đúng các hệ phương trình hợp lý khi giải mô hình. Từ đó, chúng tôi đề xuất việc sử dụng các thư viện hỗ trợ toán học có sẵn sẽ giúp giải quyết khó khăn này.

112

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] Ban chỉ đạo quốc gia về Công nghệ Thông tin (2013) Thông tin và số liệu

thống kê về công nghệ thông tin và truyền thông. Nhà xuất bản Thông tin & Truyền thông.

Tiếng Anh

[2] A. Sukert (1977) An investigation of software reliability models. Annual Reliability and Maintainability Symposium, Philadelphia, pp. 478-484.

[3] A. V. Aho (2007) Compilers: principles, techniques & tools. Pearson Education India.

[4] A. Wood (1996) Predicting software reliability. Computer, vol. 29, pp. 69- 77.

[5] A.K. Trivedi and M.L. Shooman (1975) A many-state Markov model for the estimation and prediction of computer software performance parameters. ACM SIGPLAN Notices, 10(6), 208-220.

[6] A.L. Goel and K. Okumoto (1979) Time-dependent error-detection rate model for software reliability and other performance measures. IEEE Transactions on Reliability, vol. 28, pp. 206-211.

[7] A.L. Goel and K. Okumoto (1989) A Markovian model for reliability and other performance measures of software systems. International Workshop on Managing Requirements Knowledge, pp. 769, IEEE Computer Society. [8] B. Littlewood, J.L. Verrall(1973) A Bayesian reliability growth model for

computer software. Applied Statistics, 22, pp.332-346

[9] B.K. Daniels (1983) Software reliability. Reliability Engineering, 4(4), 199- 234.

[10] Business days calculator in the USA (2014) How many working days and public holidays. [Online]. Available: http://www.workingdays.us. [Accessed 21/4/2014].

[11] C.J. Dale, L.N. Harris and P.D.T. O'Connor (1982) Software reliability evaluation methods. British Aerospace, Report ST26750.

113

[12] C.V. Ramamoorthy and F.B. Bastani (1982) Software reliability-status and perspectives. IEEE Transactions on Software Engineering, (4), 354-371. [13] C.W. Gardiner (1985). Handbook of Stochastic Methods. Springer. ISBN 3-

540-20882-8.

[14] Check average Software Programmer salary (2014) Salary results for Software Programmer. [Online]. Available: http://www.totaljobs.com/salary- checker/average-software-programmer-salary. [Accessed 21/4/2014].

[15] Check average Software Tester salary (2014) Salary results for Software Tester. [Online]. Available: http://www.totaljobs.com/salary- checker/average-software-tester-salary. [Accessed 21/4/2014].

[16] D.A. Wheeler (2003) Secure programming for linux and unix how to.

[17] D.K. Lloyd and M. Lipow (1963) Reliability: management, methods and mathematics.

[18] D.L. Parnas (1994) Software aging. Proceedings of the 16th international conference on Software engineering, IEEE Computer Society Press, pp. 279- 287.

[19] D.M. Woit (1994) Operational profile specification, test case generation, and reliability estimation for modules.

[20] E. Yourdon (1972) Reliability measurements for third generation computer systems: Reliability statistics of third generation computer systems failure causes, emphasizing cumulative effects of hardware and software. In Annual Reliability and Maintainability Symposium, San Francisco, Calif (pp. 174- 183).

[21] E.H. Forman and N.D. Singpurwalla (1977) An empirical stopping rule for debugging and testing computer software. Journal of the American Statistical Association, 72(360a), 750-757.

[22] F. Akiyama(1971) An Example of Software System Debugging. In IFIP Congress (1) (Vol. 71, pp. 353-359).

[23] F. Brosch (2012) Integrated software architecture-based reliability prediction for IT systems (Vol. 9). KIT Scientific Publishing.

114

[24] G.J. Schick and R.W. Wolverton (1978) An analysis of competing software reliability models. IEEE Transactions on Software Engineering, vol 2, pp. 104-120.

[25] H. Mills (1972) On the statistical validation of computer programs. IBM Federal Systems Division Report, pp. 72.

[26] H. Pham (2006) System software reliability. Springer Science & Business

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