logo

Luận văn tốt nghiệp "Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm"

Trong vài thập niên gần đây, cùng với sự xuất hiện của máy tính, các phần mềm hỗ trợ xử lý công việc cho người sử dụng cũng gia tăng theo cả về số lượng cũng như chất lượng. Trong công việc hằng ngày, hầu như ai cũng dựa vào máy tính để gia tăng hiệu suất công việc. Nhu cầu người sử dụng ngày càng tăng cao, đòi hỏi công nghệ và các phần mềm phục vụ cho con người cũng phát triển không ngừng...
Đại Học Quốc Gia Thành Phố Hồ Chí Minh Trường Đại Học Bách Khoa PHAN THỊ NGỌC MAI MỘT GIẢI PHÁP TOÁN HỌC CHO VIỆC PHÂN PHỐI TÀI NGUYÊN TRONG ĐỘ TIN CẬY PHẦN MỀM Chuyên ngành: Khoa học Máy tính LUẬN VĂN THẠC SĨ TP. HỒ CHÍ MINH, tháng 06 năm 2008 ĐẠI HỌC QUỐC GIA TP. HCM CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập - Tự Do - Hạnh Phúc ---------------- ---oOo--- Tp. HCM, ngày . .30. . tháng . .06. . năm .2008. NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ và tên học viên : Phan Thị Ngọc Mai ...........................Giới tính : Nam / Nữ Ngày, tháng, năm sinh : 1978 ............................................Nơi sinh : Bến Tre .................... Chuyên ngành : Khoa học Máy tính...................................................................................... Khoá : 15 .............................................................................................................................. 1- TÊN ĐỀ TÀI : ............................................................................................................... MỘT GIẢI PHÁP TOÁN HỌC CHO VIỆC PHÂN PHỐI TÀI NGUYÊN TRONG ĐỘ TIN CẬY PHẦN MỀM ........................................................................................................................................... ........................................................................................................................................... 2- NHIỆM VỤ LUẬN VĂN :.............................................................................................. ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... 3- NGÀY GIAO NHIỆM VỤ : ........................................................................................... 4- NGÀY HOÀN THÀNH NHIỆM VỤ : .......................................................................... 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : TS. Nguyễn Văn Minh Mẫn .......................... Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua. CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN (Họ tên và chữ ký) QUẢN LÝ CHUYÊN NGÀNH (Họ tên và chữ ký) TS. Nguyễn Văn Minh Mẫn TS. Đinh Đức Anh Vũ CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán bộ hướng dẫn khoa học : TS. Nguyễn Văn Minh Mẫn ........................................ Cán bộ chấm nhận xét 1 : ............................................................................................ Cán bộ chấm nhận xét 2 : ............................................................................................ Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày . . . . tháng . . . . năm . 2008. Một giải pháp toán học cho việc phân phối chi phí trong độ tin cậy phần mềm LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác. Ngày 30 tháng 06 năm 2008 Phan Thị Ngọc Mai Phan Thị Ngọc Mai Trang i Một giải pháp toán học cho việc phân phối chi phí trong độ tin cậy phần mềm LỜI CẢM ƠN Tôi xin gởi lời cảm ơn chân thành nhất đến TS. Nguyễn Văn Minh Mẫn, người đã tận tình hướng dẫn, giúp đỡ tôi trong suốt quá trình thực hiện luận văn và tạo điều kiện để tôi có thể hoàn thành luận văn này. Xin gởi lời cảm ơn đến các Thầy Cô đã dạy tôi trong thời gian qua. Tôi xin cảm ơn các bạn đồng môn và đồng nghiệp đã quan tâm, chia sẽ trong suốt quá trình học và làm luận văn. Xin cảm ơn gia đình đã dành cho tôi tình thương yêu và sự hỗ trợ tốt nhất. Phan Thị Ngọc Mai Trang ii Một giải pháp toán học cho việc phân phối chi phí trong độ tin cậy phần mềm TÓM TẮT LUẬN VĂN Đánh giá độ tin cậy phần mềm là một vấn đề quan trọng trong việc đánh giá chất lượng của một phần mềm. Quá trình này thường được thực hiện trong các giai đoạn thiết kế phần mềm, kiểm tra lỗi phần mềm. Công việc kiểm tra lỗi phần mềm được triển khai xuyên suốt các giai đoạn phát triển phần mềm, công việc này giúp giảm chi phí và nâng cao chất lượng phần mềm khi triển khai cho khách hàng. Trong thời gian hệ thống kiểm tra, việc đo lường độ tin cậy phần mềm là tiêu chuẩn quan trọng có tác dụng quyết định có nên công bố phần mềm phần này hay không. Ngoài ra, một vấn đề rất quan trọng quyết định sự thành bại của phần mềm và đang làm đau đầu các nhà quản lý dự án. Đó là làm thế nào để phân phối chi phí một cách hiệu quả nhằm tạo ra một phần mềm có tính tin cậy cao. Đã có một số phương pháp giải quyết bài toán được hiện thực theo một số mô hình toán học. Phương pháp kết hợp quy hoạch nguyên và quy hoạch phi tuyến là một giải pháp hữu hiệu để giải quyết vấn đề này. Đề tài này trình bày một giải pháp toán học đa bước để phân phối tài nguyên cho độ tin cậy phần mềm. Sử dụng quy hoạch nguyên nhị phân để thực hiện việc phân phối chi phí cho các module mua. Sử dụng quy hoạch phi tuyến để thực hiệc việc phân phối chi phí cho các module phát triển trong công ty. Thông qua việc kết hợp này, luận văn đã xây dựng được giải pháp cho phép giải quyết bài toán theo hai hướng: tìm độ tin cậy lớn nhất có thể có của phần mềm mà không vượt quá giới hạn chi phí đã cho và ngược lại tìm chi phí nhỏ nhất để phần mềm có độ tin cậy là một giá trị xác định trước. Chương trình hiện thực đã cung cấp được một lời giải với độ chính xác tương đối cho một số minh họa cụ thể. Từ khoá: Algorithm, Binary Integer Programming, Branch and Bound, Developed module, In-house Integration module, Nonlinear programming, Resource allocation, Programming modules, Purchased module, Software reliability. Phan Thị Ngọc Mai Trang iii Một giải pháp toán học cho việc phân phối chi phí trong độ tin cậy phần mềm MỤC LỤC LỜI CAM ĐOAN ...........................................................................................................i LỜI CẢM ƠN ............................................................................................................... ii TÓM TẮT LUẬN VĂN .............................................................................................. iii DANH MỤC HÌNH ..................................................................................................... vi DANH MỤC BẢNG ................................................................................................... vii Chương 1. GIỚI THIỆU...............................................................................................1 1.1. Giới thiệu .............................................................................................................. 1 1.2. Sơ lược về việc phân phối độ tin cậy phần mềm ............................................... 2 1.3. Kết cấu của luận văn ........................................................................................... 4 Chương 2. Các Mô Hình Phân Phối Chi Phí Cho Độ Tin Cậy Phần Mềm .............6 2.1. Giới thiệu .............................................................................................................. 6 2.2. Phân loại các module trong phần mềm.............................................................. 6 2.3. Mô hình quyết định trước ................................................................................... 7 2.3.1. Độ tin cậy của một module đơn phát triển trong công ty............................................7 2.3.2. Độ tin cậy của một module mua .................................................................................8 2.3.3. Độ tin cậy của một module tích hợp ...........................................................................9 2.4. Mô hình tổng quát .............................................................................................14 Chương 3. Phương Pháp Giải Bài Toán Quy Hoạch Nguyên.................................15 3.1. Giới thiệu ............................................................................................................ 15 3.2. Sự cần thiết của bài toán quy hoạch nguyên ...................................................15 3.3. Phương pháp giải quyết bài toán quy hoạch nguyên .....................................16 3.4. Phương pháp giải quyết bài toán quy hoạch nguyên nhị phân ..................... 19 Chương 4. Phương Pháp Giải Bài Toán Quy Hoạch Phi Tuyến ...........................23 4.1. Giới thiệu ............................................................................................................ 23 4.2. Những điều kiện tối ưu...................................................................................... 25 4.3. Tính lồi của hàm nhiều biến ............................................................................. 26 4.3.1. Tập lồi .......................................................................................................................26 4.3.2. Định nghĩa hàm lồi ...................................................................................................26 4.3.3. Đặc trưng của hàm lồi...............................................................................................26 4.4. Các phương pháp giải bài toán quy hoạch phi tuyến..................................... 27 4.4.1. Giải bài toán tối ưu không có điều kiện ràng buộc ...................................................27 4.4.2. Giải bài toán tối ưu với điều kiện ràng buộc các biến lớn hơn 0 ..............................28 4.4.3. Giải bài toán tối ưu với điều kiện ràng buộc là các phương trình tuyến tính............30 4.4.4. Giải bài toán tối ưu với điều kiện ràng buộc là các phương trình phi tuyến.............34 Chương 5. Giải Quyết Bài Toán ................................................................................36 5.1. Phân hoạch bài toán ..........................................................................................36 5.2. Bài toán tối ưu hóa các module mua ................................................................37 5.3. Bài toán tối ưu hóa các module phát triển trong công ty...............................39 Phan Thị Ngọc Mai Trang iv Một giải pháp toán học cho việc phân phối chi phí trong độ tin cậy phần mềm 5.4. Sự kết hợp module mua và module phát triển trong công ty ........................40 5.4.1. Bài toán A .................................................................................................................41 5.4.2. Bài toán B .................................................................................................................46 Chương 6. Một số kết quả, kết luận...........................................................................51 6.1. Sơ lược về chương trình ....................................................................................51 6.2. Một số kết quả chạy chương trình ................................................................... 51 6.2.1. Bài toán trong ví dụ 3.4 ............................................................................................51 6.2.2. Bài toán trong ví dụ 4.1.1 .........................................................................................51 6.2.3. Bài toán trong ví dụ 4.3.1 .........................................................................................52 6.2.4. Bài toán trong ví dụ 4.3.4 .........................................................................................52 6.2.5. Bài toán cho một phần mềm gồm có 6 module.........................................................54 6.2.6. Bài toán cho một phần mềm gồm có 11 module.......................................................56 6.2.7. Bài toán cho một phần mềm gồm có 22 module.......................................................61 6.2.8. Bài toán cho một phần mềm gồm có 37 module.......................................................67 6.3. Kết luận............................................................................................................... 74 Tài Liệu Tham Khảo ...................................................................................................76 Phụ lục 1. Bảng đối chiếu Thuật ngữ Anh - Việt......................................................77 Phụ lục 2. Bảng tóm tắt các mô hình đánh giá độ tin cậy phần mềm ....................78 Phụ lục 3. Sơ lược về MATLAB.................................................................................80 Tham khảo Chỉ Mục ...................................................................................................84 Phan Thị Ngọc Mai Trang v Một giải pháp toán học cho việc phân phối chi phí trong độ tin cậy phần mềm DANH MỤC HÌNH Hình 2.1: Độ tin cậy của một module phần mềm .......................................................8 Hình 2.2: Một hệ thống databate-indexing ...............................................................11 Hình 3.1: Giá trị tối ưu LP khi làm tròn xa với giá trị tối ưu của IP problem......16 Hình 3.2: Một cây liệt kê đầy đủ ................................................................................17 Hình 3.3 : Cây tìm kiếm cho ví dụ 3.2 .......................................................................22 Hình 4.1: Một giải pháp hình học cho ví dụ 4.1.1.....................................................24 Hình 4.2: Một giải pháp hình học cho ví dụ 4.1.2.....................................................25 Hình 5.1: Sự phân hoạch bài toán..............................................................................36 Hình 6.1: Mô hình một phần mềm có 11 module .....................................................56 Hình 6.2: Mô hình một phần mềm có 22 module .....................................................61 Hình 6.3: Mô hình một phần mềm có 37 module .....................................................67 Phan Thị Ngọc Mai Trang vi Một giải pháp toán học cho việc phân phối chi phí trong độ tin cậy phần mềm DANH MỤC BẢNG Bảng 2.1: Giải pháp cho những nguồn ngân sách khác nhau .................................13 Bảng 6.1: Kết quả chạy phần mềm có 6 module cho bài toán A.............................54 Bảng 6.2: Kết quả chạy phần mềm có 6 module cho bài toán B .............................55 Bảng 6.3: Kết quả chạy phần mềm có 11 module cho bài toán A...........................59 Bảng 6.4: Kết quả chạy phần mềm có 11 module cho bài toán B ...........................60 Bảng 6.5: Kết quả chạy phần mềm có 22 module cho bài toán A...........................65 Bảng 6.6: Kết quả chạy phần mềm có 22 module cho bài toán B ...........................66 Bảng 6.7: Kết quả chạy phần mềm có 37 module cho bài toán A...........................72 Bảng 6.8: Kết quả chạy phần mềm có 37 module cho bài toán B ...........................73 Phan Thị Ngọc Mai Trang vii Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Chương 1. GIỚI THIỆU 1.1. Giới thiệu Trong vài thập niên gần đây, cùng với sự xuất hiện của máy tính, các phần mềm hỗ trợ xử lý công việc cho người sử dụng cũng gia tăng theo cả về số lượng cũng như chất lượng. Trong công việc hàng ngày, hầu như ai cũng dựa vào máy tính để gia tăng hiệu suất công việc. Nhu cầu người sử dụng ngày càng tăng cao, đòi hỏi công nghệ và các phần mềm phục vụ cho con người cũng phát triển không ngừng. Ngày nay, máy tính đã được con người sử dụng trong mọi thiết bị từ đồng hồ đeo tay, điện thoại, các thiết bị trong nhà, xe mô tô .v.v. Khoa học kỹ thuật đòi hỏi tốc độ tính toán cũng như độ chính xác, vấn đề đó đồng nghĩa với việc phát triển khả năng xử lý của phần cứng và chất lượng của phần mềm. Một vấn đề đang làm đau đầu các nhà quản lý đó là bằng cách nào đó họ có thể phân bổ tài nguyên một cách hợp lý để tạo ra phần mềm với lợi nhuận và chất lượng cao. Đề tài nghiên cứu việc phân phối tài nguyên cho độ tin cậy phần mềm này giúp chúng ta có thể quản lý và phân bổ tài nguyên cho việc xây dựng phần mềm có chất lượng cao. Dựa vào các yếu tố hiện có của công ty, chúng ta có thể chủ động xây dựng kế hoạch phân bổ tài nguyên để có thể giảm thiểu được các nguy cơ rủi ro đến mức thấp nhất, nhằm tạo ra phần mềm có tính tin cậy nhất. Để tiếp cận và tìm ra giải pháp để giải quyết bài toán nhằm tạo ra được một phần mềm chắc chắn đáng tin cậy theo yêu cầu, đề tài này cố gắng tập trung vào giải quyết một số vấn đề sau: Xác định các mudule phần mềm: phần module nào sẽ được phát triển tại công ty và phần module nào sẽ được mua, phần module nào sẽ dùng lại. Dự đoán tài nguyên (chi phí) cần thiết cho từng module và tính toán độ tin cậy mong đợi với tài nguyên đó. Tính độ tin cậy lớn nhất có thể đạt được của hệ thống phần mềm không vượt quá giới hạn ngân sách đã cho. Phan Thị Ngọc Mai Trang 1 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Tìm chi phí nhỏ nhất để phần mềm có độ tin cậy là một hằng số xác định trước. Với những mục tiêu này đề tài đã thu được một số kết quả: Xây dựng được mô hình tổng quát cho bài toán quy hoạch nguyên dạng nhị phân, trên cơ sở đó áp dụng cho bài toán tối ưu hóa các module mua. Xây dựng được mô hình tổng quát cho bài toán quy hoạch phi tuyến, trên cơ sở đó áp dụng cho bài toán tối ưu hóa các module phát triển trong công ty. Xây dựng được một mô hình phân phối chi phí để phần mềm có độ tin cậy lớn nhất. Xây dựng được một mô hình phân phối chi phí nhỏ nhất để phần mềm có độ tin cậy là một hằng số cho trước. 1.2. Sơ lược về việc phân phối độ tin cậy phần mềm Quá trình phân phối chi phí cho độ tin cậy phần mềm được thực hiện như sau: Đầu tiên, xác định các module trong phần mềm module nào là module đơn và module nào là module tích hợp. Module đơn nào được phát triển trong công ty và module đơn nào sẽ được mua bên ngoài thị trường. Tiếp theo, xác định công thức tính độ tin cậy cho từng loại module: Đối với module mua, mỗi module mua có nhiều version trên thị trường, ứng với mỗi version đều có độ tin cậy và chi phí khác nhau. Độ tin cậy và chi phí của một module bằng độ tin cậy và chi phí của version mà chúng ta lựa chọn mua. Với lý do tiết kiệm chi phí, do đó chúng ta phải lựa chọn duy nhất một trong số các version đã cho. Do đó để thực hiện được vấn đề này, chúng ta đưa một biến thực hiện công việc lựa chọn mua hay không mua một version nào đó. Đó là các biến nguyên nhị phân. Đối với các module phát triển trong công ty, độ tin cậy của một module sẽ phụ thuộc vào chi phí. Khi chi phí tăng thì độ tin cậy cũng tăng theo. Tuy nhiên, độ tin cậy sẽ tăng đến một mức độ nào đó thì sẽ tăng chậm lại, cho dù ta có tăng chi phí nhiều thì độ tin cậy cũng tăng chậm. Qua việc khảo Phan Thị Ngọc Mai Trang 2 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm sát hàm số mũ âm, ta nhận thấy cách đo độ tin cậy phần mềm rất giống với hàm số mũ âm. Do đó ta chọn hàm số mũ âm để mô tả độ tin cậy của các module phát triển trong công ty và các biến trong các module phát triển trong công ty là các biến thực. Việc giải quyết bài toán tối ưu hoá phân phối chi phí cho độ tin cậy phần mềm tồn tại cả hai loại biến nguyên nhị phân và biến thực rất khó giải quyết. Một phương án đề xuất phân hoạch bài toán thành hai phần: phần module mua và phần module phát triển trong công ty, chi phí để phát triển phần mềm cũng được phân hoạch thành hai phần ứng với hai sự phân hoạch đó. Đối với bài toán module mua, cấu trúc bài toán giống như một bài toán quy hoạch tuyến tính, tuy nhiên các biến trong bài toán đều là các biến nguyên nhị phân, nếu chúng ta giải quyết bài toán theo phương pháp quy hoạch tuyến tính để tìm ra nghiệm, sau đó làm tròn các nghiệm để được giá trị nguyên, phương pháp làm tròn tìm ra lời giải rất xa so với lời giải thực tế, còn dùng phương pháp liệt kê tất cả các lời giải sau đó tìm ra lời giải tối ưu nhất thì dẫn đến việc bùng nổ tổ hợp. Một giải pháp được đề xuất là sử dụng giải thuật Branch and Bound để giải quyết bài toán, bước đầu đã đạt được những kết quả. Do module mua cũng là một module đơn trong phần mềm, và các module tích hợp được tích hợp từ các module đơn. Do đó, với việc giải quyết bài toán tối ưu hoá các module mua, chúng ta đã tìm được độ tin cậy và chi phí cho các module mua. Kết quả sẽ được đưa vào để giải quyết bài toán tối ưu hoá các module phát triển trong công ty. Đối với bài toán các module phát triển trong công ty, do cấu trúc bài toán hàm mục tiêu là một hàm nhiều biến, lại liên quan đến hàm số mũ. Cho nên để thực hiện được bài toán ta sử dụng phương pháp quy hoạch phi tuyến để giải quyết, thông qua đây ta cũng tìm được độ tin cậy và chi phí cho từng module trong phần mềm cũng như độ tin cậy của phần mềm. Tuy nhiên, để đảm bảo bài toán tìm được lời giải tối ưu nhất, chúng ta cần phải xem xét nguồn chi phí cung cấp có đủ để phát triển phần mềm chưa, cũng như việc phân chia chi phí giữa các module mua và module phát triển Phan Thị Ngọc Mai Trang 3 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm trong công ty có hợp lý chưa, và các thông số nhập vào có đảm bảo phần mềm có độ tin cậy thoả mãn không. Đây là các vấn đề bài toán A trong chương 5 sẽ giải quyết. Một vấn đề khác nhà quản lý đặc ra, với độ tin cậy độ đã định trước, tìm chi phí nhỏ nhất ứng với độ tin cậy đã cho. Đây là một bài toán ngược với bài toán A. Để thực hiện được vấn đề này, các công việc sau đây cần giải quyết: Đối với các module mua các verion của các module mua có độ tin cậy và chi phí là một hằng số xác định trước. Vì vậy, công việc tìm độ tin cậy của các module này cũng được thực hiện giống như bài toán A. Nghĩa là ta sẽ cho trước chi phí để mua các module và từ đó tìm ra độ tin cậy ứng với chi phí đó. Tương tự như trên kết quả độ tin cậy của các module mua sẽ được đưa vào để giải quyết bài toán tối ưu hoá các module phát triển trong công ty. Đối với các module phát triển trong công ty, qua việc tìm chi phí nhỏ nhất để phần mềm có độ tin cậy là một hằng số cho trước ta cũng dùng phương pháp quy hoạch phi tuyến để giải quyết. Trong trường hợp này hàm mục tiêu là hàm chi phí và điều kiện ràng buộc là hàm độ tin cậy của phần mềm phải bằng một hằng số cho trước. Qua đây, chúng ta có thể tìm ra được chi phí nhỏ nhất của phần mềm, cũng như độ tin cậy và chi phí của từng module trong phần mềm. Tuy nhiên, công việc này nhiều lúc không dễ dàng thực hiện, do khi chúng ta phân phối chi phí cho các module mua quá ít, làm cho độ tin cậy của các module này cũng nhỏ theo, kết quả làm ảnh hưởng đến độ tin cậy phần mềm, hoặc các thông số đầu vào của các module phần mềm cũng gây ảnh hưởng không nhỏ đến quá trình xác định này. Đây là một vấn đề cũng không kém phần quan trọng, và sẽ được giải quyết trong bài toán B của chương 5. 1.3. Kết cấu của luận văn Luận văn bao gồm 6 chương. Chương 1. Giới thiệu Phan Thị Ngọc Mai Trang 4 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Chương này trình bày bối cảnh, mục tiêu và kết quả thu được của luận văn. Chương 2. Các mô hình phân phối chi phí cho độ tin cậy phần mềm Chương này trình bày các khái niệm cơ bản về độ tin cậy phần mềm, cách tính độ tin của từng loại module trong phần mềm dựa vào chi phí, các phương pháp giải quyết bài toán phân phối chi phí cho độ tin cậy phần mềm. Chương 3. Phương pháp giải bài toán quy hoạch nguyên Chương này giới thiệu việc dùng giải thuật Branch and Bound để giải quyết bài toán quy hoạch nguyên. Chương 4. Phương pháp giải bài toán quy hoạch phi tuyến Chương này trình bày các định lý và giải thuật cho bài toán quy hoạch phi tuyến của hàm nhiều biến. Chương 5. Giải quyết bài toán Trên cơ sở lý thuyết đã trình bày về các phương pháp giải quyết bài toán quy hoạch nguyên và quy hoạch phi tuyến. Trong chương này sẽ trình giải pháp tiếp cận cũng như cách thực hiện bài toán phân phối chi phí cho độ tin cậy phần mềm. Thông qua việc giải quyết bài toán tìm độ tin cậy lớn nhất mà không vượt quá giới hạn ngân sách đã cho, và ngược lại, tìm chi phí nhỏ nhất để phần mềm có độ tin cậy là một hằng số cho trước. Chương 6. Kết quả, kết luận Chương này trình bày các kết quả đạt được của bài toán, đề cập lại những việc đã thực hiện được của đề tài. Nêu lên hướng mở rộng và phát triển tiếp theo cho đề tài. Phan Thị Ngọc Mai Trang 5 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Chương 2. Các Mô Hình Phân Phối Chi Phí Cho Độ Tin Cậy Phần Mềm Chương này trình bày định nghĩa về độ tin cậy phần mềm, cách tính độ tin cậy của các module trong phần mềm, các mô hình phân phối chi phí cho độ tin cậy phần mềm [7]. 2.1. Giới thiệu Độ tin cậy [3] của một hệ thống phần mềm được định nghĩa là xác suất của sự thành công. Được thực hiện bằng cách đo hoạt động phần mềm trong một đơn vị thời gian, trong một môi trường nhất định. Đây là một thuộc tính của chất lượng phần mềm, bao gồm các nhân tố như: sự toại nguyện của khách hàng, tính tiện lợi, sự thực thi phần mềm, tính có ích, khả năng công việc . . 2.2. Phân loại các module trong phần mềm Trong nghiên cứu này, chúng ta xem cấu trúc của một phần mềm được tổ chức các module theo cấu trúc cây phân cấp và chúng ta sẽ tính toán độ tin cậy của phần mềm theo cấu trúc cây phân cấp. Chúng ta giả định các module trong phần mềm được tồn tại dưới hai dạng: module đơn và module tích hợp. Module đơn là module được tạo ra từ chính nó. Module này có thể được module mua từ bên ngoài thị trường và cũng có thể module được phát triển trong công ty. Module tích hợp là một module được phát triển trong công ty. Module tích hợp được tạo thành từ nhiều module đơn, hoặc có thể từ các module đơn và module tích hợp khác. Với lý do phân bổ nguồn tài nguyên hợp lý để tạo ra phần mềm có tính tin cậy cao mà tiết kiệm được chi phí. Dựa vào nguồn lực hiện có của công ty, nhà quản lý quyết định phần module nào sẽ được phát triển trong công ty, phần nào sẽ mua, và phần nào sẽ dùng lại. Một module được xem thích hợp để phát triển trong công ty khi trong công ty có đầy đủ điều kiện để phát triển và việc triển trong công ty có thể Phan Thị Ngọc Mai Trang 6 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm sẽ tiết kiện hơn so với việc mua từ bên ngoài. Loại module này bao gồm module đơn và module tích hợp. Một module được xem thích hợp để mua khi có nhiều version trên thị trường và trong công ty có thể không có đầy đủ điều kiện để phát triển hoặc chi phí để mua có thể tiết kiệm hơn so với việc phát triển trong công ty. Loại module này là module đơn. Một module được xem thích hợp dùng lại khi trong công ty đã có sẳn (do trong công ty phát triển hoặc đã mua trước đó) và việc dùng lại này rõ ràng không tốn chi phí nào. Vấn đề chính trong bài toán này là phân phối chi phí cho độ tin cậy phần mềm. Do đó, chúng ta chỉ xem xét các mô hình phát triển phần mềm chỉ bao gồm các module mua và các module phát triển trong công ty, còn phần module dùng lại do không có sự tham gia của nhân tố chi phí cho nên chúng ta sẽ không được xét đến. 2.3. Mô hình quyết định trước Nhiệm vụ của mô hình quyết định trước là xác định trước một module sẽ được mua hoặc được phát triển trong công ty. Giả sử trong phần mềm có n module chúng ta có thể phân theo các dạng sau: Các module từ 1, 2, . . m1 là các module đơn và các module từ m1+1, . . . , n là các tích hợp. Các module từ 1, 2, . . , m là các module mua và còn lại m+ 1, . . . , n là được phát triển trong công ty. 2.3.1. Độ tin cậy của một module đơn phát triển trong công ty Giả sử xi( 0) là chi phí khởi tạo cho việc phát triển module i trong công ty, và ứng với chi phí này ta có độ tin cậy khởi tạo ri( 0 ) . Nếu chúng ta cung cấp chi phí nhỏ hơn chi phí khởi tạo thì độ tin cậy của module được xem bằng không. Độ tin cậy của một module sẽ tăng dần và tỷ lệ thuận với việc phân phối chi phí. Độ tin cậy tối đa có thể đạt được cho module i là ri(max) . Thường chúng ta cho rằng độ tin cậy ri(max) = 1 . Nhưng với mức độ đúng đắn 100% rất khó xẩy ra, do đó ri(max) là một giá trị nhỏ hơn hoặc bằng 1. Phan Thị Ngọc Mai Trang 7 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Dựa vào các nhận định trên, chúng ta chọn cách mô tả độ tin cậy của một module đơn được phát triển trong công ty với hàm số mũ âm, vì với hàm này phù hợp với mô hình tăng tưởng độ tin cậy dựa vào việc phân phối chi phí (xem hình 2.1). Mô hình độ tin cậy của một module đơn như sau: Độ tin cậy của một module i là ri: (2.1) trong đó là một thông số phản ảnh độ nhạy của độ tin cậy của module mỗi khi có sự thay đổi chi phí. Giá trị lớn sẽ tác động đến việc thay đổi chi phí . Do đó khi thì và khi thì . Hình 2.1 dưới đây biểu diễn hàm độ tin cậy của công thức (2.1). Cho , , và . Trong trường hợp này, độ tin cậy là 0 khi chi phí nhỏ hơn 100, và 0.3 khi chi phí bằng 100. Độ tin cậy khi đó tăng lên cho đến khi đạt giá trị lớn nhất là 0.9 khi xi → ∞ . 100 Hình 2.1: Độ tin cậy của một module phần mềm 2.3.2. Độ tin cậy của một module mua Mỗi module i trong tập hợp các module mua được giả định có ni version trên thị trường ( ). Phan Thị Ngọc Mai Trang 8 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm Cho yij là một biến nhị phân biểu thị cho việc mua hay không mua version thứ j của module i . Nếu yij = 1 thì version j của module i được mua, ngược lại yij = 0 thì version j của module i không được mua. Với mục tiêu của mô hình là cực đại hóa độ tin cậy của phần mềm được ràng buộc trên tổng ngân sách đã cho (B). Do đó, để tiết kiệm chi phí mỗi module mua chỉ mua duy nhất một version trên thị trường, chúng ta ni cần điều kiện sau ∑y j =1 ij = 1 , với bất kỳ mudule mua. Khi đó ta có độ tin cậy của module mua i là ri : ni ri = ∑ rij yij (2.2) j =1 và chi phí để mua module i là: ni ci = ∑ cij yij j =1 2.3.3. Độ tin cậy của một module tích hợp Cho các module i1, i2, . . . , is là các module tạo thành module Ti. Ta gọi module Ti là một module tích hợp. Độ tin cậy của một module tích hợp Ti phụ thuộc vào độ tin cậy của các module con của Ti. Cho rT(m ) là độ tin cậy lớn nhất có thể đạt được của module tích hợp Ti . Giả sử i việc thực thi chương trình của các module con là theo một trình tự và không có sự phụ thuộc lẫn nhau. Do đó độ tin cậy tối đa có thể đạt được của module Ti được tính theo công thức rT(max) = ∏k =1 ri . Tuy nhiên, trong quá trình tích hợp các module con có thể s i xẩy ra những lỗi do có sự không tương thích giữa các module với nhau. Do đó, gọi rT( 0) i là độ tin cậy nhỏ nhất có thể có của module Ti (có thể nhỏ hơn hoặc bằng rT(max) ). Cho i qTi (0 < qTi ≤ 1) là một hệ số phản ánh sự tương thích giữa các module. Vì vậy rT(i0) = qTi ∏ k =1 ri = qTi rT(max) . s i Tương tự như một module đơn được phát triển trong công ty. Ta có thể sử dụng hàm số mũ để mô tả độ tin cậy của một module tích hợp. Độ tin cậy của một module tích hợp Ti là: Phan Thị Ngọc Mai Trang 9 Một giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm ⎧ ⎫ (0) ⎪r (max) − ((rT(max) − rT(i0 ) )e −α i ( xi − xi ) xi ≥ xi( 0) ⎪ RTi = ⎨ Ti i (0) ⎬ (2.3) ⎪ ⎩ 0 xi < xi ⎪ ⎭ trong đó α i , xi và xi( 0 ) đã được định nghĩa trong phần trước. Công thức độ tin cậy phần mềm ( ) phụ thuộc vào cấu trúc của phần mềm: Nếu phần mềm chỉ là một module đơn thì là bằng độ tin cậy của module đó. Nếu phần mềm chỉ là một module được phát triển trong công ty thì công thức độ tin cậy là công thức (2.1). Nếu phần mềm chỉ là một mudule mua thì công thức độ tin cậy là công thức (2.2). Nếu phần mềm là một hệ thống có nhiều hơn một module thì module gốc phải là một module tích hợp và độ tin cậy phần mềm phụ thuộc vào độ tin cậy của các module con. Công thức tính độ tin cậy phần mềm là công thức (2.3). Khi một số module con là các module tích hợp, công thức độ tin cậy của các con phải được tính trước. Một thủ tục đệ quy có thể sử dụng để tính toán . Hình 2.2 biểu diễn một hệ thống phần mềm chứa 6 module. Index-generator(3) và Analyzer(4) là 2 module được phát triển trong công ty và công thức độ tin cậy là công thức (2.1) (xem r3 và r4 trong phần 5). Parse(1) và Stemmer(2) là 2 module mua và công thức độ tin cậy là công thức (2.2) (xem r1 và r2 trong phần 5). Công thức độ tin cậy của module tích hợp (công thức (2.3)) được sử dụng cho Keyword(5) (xem r5 trong phần 5). Một công thức cho mọi module con của module gốc Database-index(6) được xác định trước thông qua công thức (2.3) và đây cũng là công thức tính độ tin cậy phần mềm ( ) (xem r6 trong phần ví dụ 2.1). Phan Thị Ngọc Mai Trang 10
DMCA.com Protection Status Copyright by webtailieu.net