Tải bản đầy đủ (.pdf) (94 trang)

Một số 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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (906.54 KB, 94 trang )

Đạ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......................................................................................
Khố : 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 Chun 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 HỒ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 q trình thực hiện luận văn và tạo điều
kiện để tơi có thể hồ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 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.
Ngồ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 tố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 tố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 q 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.
1.2.
1.3.

Giới thiệu .............................................................................................................. 1
Sơ lược về việc phân phối độ tin cậy phần mềm ............................................... 2
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.
2.2.
2.3.
2.3.1.
2.3.2.
2.3.3.

2.4.

Giới thiệu .............................................................................................................. 6
Phân loại các module trong phần mềm.............................................................. 6
Mơ hình quyết định trước ................................................................................... 7
Độ tin cậy của một module đơn phát triển trong công ty............................................7
Độ tin cậy của một module mua .................................................................................8
Độ tin cậy của một module tích hợp ...........................................................................9

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.
3.2.
3.3.
3.4.

Giới thiệu ............................................................................................................ 15
Sự cần thiết của bài toán quy hoạch nguyên ...................................................15
Phương pháp giải quyết bài toán quy hoạch nguyên .....................................16
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.
4.2.
4.3.
4.3.1.
4.3.2.
4.3.3.

4.4.
4.4.1.
4.4.2.
4.4.3.
4.4.4.

Giới thiệu ............................................................................................................ 23
Những điều kiện tối ưu...................................................................................... 25
Tính lồi của hàm nhiều biến ............................................................................. 26
Tập lồi .......................................................................................................................26
Định nghĩa hàm lồi ...................................................................................................26
Đặc trưng của hàm lồi...............................................................................................26

Các phương pháp giải bài toán quy hoạch phi tuyến..................................... 27
Giải bài tốn tối ưu khơng có điều kiện ràng buộc ...................................................27
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
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
Giải bài tố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.

5.2.
5.3.

Phân hoạch bài toán ..........................................................................................36
Bài toán tối ưu hóa các module mua ................................................................37
Bài tố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.
5.4.1.
5.4.2.

Sự kết hợp module mua và module phát triển trong cơng ty ........................40
Bài tốn A .................................................................................................................41
Bài toán B .................................................................................................................46

Chương 6. Một số kết quả, kết luận...........................................................................51
6.1.
6.2.
6.2.1.
6.2.2.
6.2.3.
6.2.4.
6.2.5.
6.2.6.

6.2.7.
6.2.8.

6.3.

Sơ lược về chương trình ....................................................................................51
Một số kết quả chạy chương trình ................................................................... 51
Bài tốn trong ví dụ 3.4 ............................................................................................51
Bài tốn trong ví dụ 4.1.1 .........................................................................................51
Bài tốn trong ví dụ 4.3.1 .........................................................................................52
Bài tốn trong ví dụ 4.3.4 .........................................................................................52
Bài tốn cho một phần mềm gồm có 6 module.........................................................54
Bài tốn cho một phần mềm gồm có 11 module.......................................................56
Bài tốn cho một phần mềm gồm có 22 module.......................................................61
Bài tốn cho một phần mềm gồm có 37 module.......................................................67

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 tố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 tố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 tố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 tốn A...........................65
Bảng 6.6: Kết quả chạy phần mềm có 22 module cho bài tố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 tố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 tố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ự đốn tài ngun (chi phí) cần thiết cho từng module và tính tốn độ tin
cậy mong đợi với tài ngun đó.
ƒ 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 ngun 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 qt cho bài tốn quy hoạch nguyên dạng
nhị phân, trên cơ sở đó áp dụng cho bài tốn tối ưu hóa các module mua.
ƒ Xây dựng được mơ hình tổng qt cho bài tốn quy hoạch phi tuyến, trên
cơ sở đó áp dụng cho bài tố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

Q 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 ngồ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 tố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 tốn đều là các biến
nguyên nhị phân, nếu chúng ta giải quyết bài tố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ị ngun, 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 tốn tối ưu hố 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 hố các module phát triển trong cơng
ty.
ƒ Đối với bài tố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 tố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 ngun 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 tốn tối ưu hố 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 q 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 tố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 tố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 tố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 tố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 tố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ị
thì

lớn sẽ tác động đến việc thay đổi chi phí

và khi

thì

. Do đó khi

.

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
,




,

. 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
cần điều kiện sau


ni

∑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 q 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)
.
i
s

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
⎧⎪r (max) − ((rT(max) − rT( 0 ) )e −α i ( xi − xi
i
i
RTi = ⎨ Ti
⎪⎩
0

(0)

)

xi ≥ xi( 0) ⎫⎪

xi < xi( 0 ) ⎪⎭

(2.3)

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 tố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



×