Chương 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ô. 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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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. 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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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. Kết cấu của luận văn Luận văn bao gồm 6 chương.
Giới thiệu Phan Thị Ngọc Mai Trang 4 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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. 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. 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. 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.
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.