Để giải quyết bài toán, một giải pháp sử dụng phương pháp quy hoạch nguyên nhị phân [3] được đề xuất việc phân phối chi phí cho các module mua, kết hợp với phương pháp quy hoạch phi tu[r]
(1)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
Nguyễn Thị Thuỳ Trang, Phan Thị Ngọc Mai* Trường Đại học Công nghiệp Thực phẩm TP.HCM
*Email: maiptn@cntp.edu.vn
Ngày nhận bài: 05/9/2017; Ngày chấp nhận đăng: 05/12/2017 TÓM TẮT
Bài báo đề xuất giải pháp toán học việc phân phối chi phí cho độ tin cậy phần mềm: ứng dụng quy hoạch nguyên nhị phân tìm độ tin cậy lớn module mua ứng dụng quy hoạch phi tuyến tìm độ tin cậy lớn module phát triển công ty Nghiên cứu giải tốn tìm độ tin cậy lớn khơng vượt q giới hạn chi phí cho, ngược lại tìm khoảng chi phí nhỏ để phần mềm có độ tin cậy giá trị xác định trước
Từ khoá: Độ tin cậy phần mềm, module phát triển cơng ty, module tích hợp, module mua, phân phối chi phí
1 GIỚI THIỆU 1.1 Định nghĩa
Độ tin cậy phần mềm [1] xác suất hoạt động phần mềm khơng có lỗi khoảng thời gian định môi trường định
Trong báo này, cấu trúc phần mềm tổ chức module theo cấu trúc phân cấp module phần mềm tồn hai dạng: module đơn module tích hợp [2]
Module đơn [2] module tạo từ Module mua từ bên ngồi thị trường phát triển công ty
Module mua module cơng ty khơng có đầy đủ điều kiện để phát triển chi phí mua tiết kiệm so với việc phát triển công ty
Module tích hợp module tạo thành từ nhiều module đơn từ module đơn module tích hợp khác
Với lý phân bổ nguồn tài nguyên hợp lý để tạo phần mềm có tính tin cậy cao tiết kiệm chi phí (dựa vào nguồn lực có công ty) nhà quản lý định phần module phát triển công ty, phần module mua, phần module dùng lại
Một module xem thích hợp để phát triển công ty công ty có đầy đủ điều kiện để phát triển việc phát triển cơng ty tiết kiệm so với việc mua từ bên Loại module bao gồm module đơn module tích hợp
(2)Một module xem thích hợp dùng lại cơng ty có sẵn (do công ty phát triển mua trước đó) việc dùng lại rõ ràng khơng tốn chi phí
Vấn đề tốn phân phối chi phí cho độ tin cậy phần mềm Do đó, mơ hình phát triển phần mềm bao gồm module mua module phát triển cơng ty, cịn phần module dùng lại khơng có tham gia nhân tố chi phí khơng xét đến
Ví dụ, Hình 1dưới [2]:
Có module đơn: Index-generator, Analyzer, Parse Stemmer
Index-generator Analyzer là hai module đơn phát triển công ty
Parse Stemmer là hai module mua, module có hai version thị trường
Hai module Keyword Database-index module tích hợp:
Module Keyword được tích hợp từ haimodule Analyzer và Stemmer
Module Database-index được tích hợp từ ba module: Parser, Keyword, Index-generator
Hình Phần mềm Database-indexing
1.2 Độ tin cậy module
1.2.1 Độ tin cậy module đơn phát triển công ty
Chọn hàm số mũ âm để tính độ tin cậy module phát triển công ty Giả sử
𝑥𝑖(0) chi phí cần thiết để phát triển module i cơng ty Chi phí để phát triển module xi(0) độ tin cậy ban đầu ri(0) Nếu chi phí tăng lên độ tin cậy tăng thêm Độ tin cậy tối đa đạt cho module i 𝑟𝑖(max), độ tin cậy
𝑟𝑖(max)= với mức độ đắn 100% khó xảy ra, 𝑟𝑖(max)≤ Độ tin cậy module i ri [2]:
𝑟𝑖 = {𝑟𝑖
(𝑚)− (𝑟
𝑖(𝑚)− 𝑟𝑖(0)) 𝑒−𝛼𝑖(𝑥𝑖−𝑥𝑖 (0))
𝑥𝑖 ≥ 𝑥𝑖(0) 𝑥𝑖 < 𝑥𝑖(0)
(1)
trong ∝𝑖 thông số phản ánh độ nhạy độ tin cậy module có thay đổi
chi phí Giá trị ∝𝑖 lớn tác động đến việc thay đổi chi phí 𝑥𝑖 Do 𝑥𝑖 = 𝑥𝑖(0)
(3)Hình 2. Độ tin cậy module phần mềm
Hình tham khảo từ Berman and Cutler (1998) biểu diễn độ tin cậy công thức (1): 𝑟𝑖(0)= 0,3, 𝑟𝑖(𝑚) = 0,9, ∝𝑖= 0,05, 𝑥𝑖(0)= 100 Trong trường hợp này, độ tin cậy
bằng chi phí nhỏ 100 0.3 chi phí 100 Độ tin cậy tăng đến giá trị lớn 0,9 xi [2]
1.2.2 Độ tin cậy module mua
Một module i tập hợp module mua giả định có ni version thị trường ( )
Cho yij biến nhị phân biểu thị cho việc mua hay không mua version thứ j module i Nếu yij 1thì version j module i mua, ngược lại yij 0thì version
j module i không mua Với mục tiêu mơ hình cực đại hóa độ tin cậy phần mềm ràng buộc tổng ngân sách cho (B) Do đó, để tiết kiệm chi phí
module mua mua version thị trường, với điều kiện 1
1
i
n
j ij
y , độ tin cậy module mua i ri:
𝑟𝑖= ∑ 𝑟𝑖𝑗𝑦𝑖𝑗(2.1) 𝑛𝑖
𝑗=1
và chi phí để mua module i là:
𝑐𝑖= ∑ 𝑐𝑖𝑗𝑦𝑖𝑗(2.2) 𝑛𝑖
𝑗=1
1.2.3 Độ tin cậy module tích hợp
Module Ti là module tích hợp tạo thành từ module i1, i2, , is Độ tin
cậy module Ti phụ thuộc vào độ tin cậy module Ti
Cho T(m)
i
r độ tin cậy lớn đạt module tích hợp Ti Do đó, độ tin
cậy tối đa đạt module Ti tính theo cơng thức s
k i
T r
r
i
(max)
Tuy nhiên, trình tích hợp module xảy lỗi có khơng tương thích module với Do đó, gọi (0)
i
T
r độ tin cậy nhỏ có module
i
T (có thể nhỏ (max)
i
T
r ) Cho (0 1)
i
i T
T q
q hệ số phản ánh tương
thích module Vì (max)
1 )
0 (
i i i
i T T
s
k i
T
T q r q r
(4)Tương tự module đơn phát triển cơng ty, độ tin cậy module tích hợp Ti:
𝑅𝑇𝑖 = {𝑟𝑇𝑖 (𝑚)− (𝑟
𝑇𝑖(𝑚)− 𝑟𝑇𝑖(0)) 𝑒−𝛼𝑖(𝑥𝑖−𝑥𝑖 (0))
𝑥𝑖 ≥ 𝑥𝑖(0) 𝑥𝑖 < 𝑥𝑖(0)
(3)
trong ∝𝑖, 𝑥𝑖, 𝑥𝑖(0) định nghĩa phần trước
Các số ngẫu nhiên chọn cho ví dụ [2]:
𝑟11= 0,7, 𝑐11= 𝑟12= 0,9, 𝑐12= 𝑟21= 0,87, 𝑐21= 𝑟22= 0,95, 𝑐22=
𝑟3(𝑚)= 0,83, 𝑟3(0)= 0,53, 𝛼3= 0,3, 𝑥3(0) = 2 𝑟4(𝑚)= 0,9, 𝑟4(0)= 0,5, 𝛼4 = 0,4, 𝑥4(0)= 3,5 𝑞5= 0,7, 𝛼5 = 0,25, 𝑥5(0)=
𝑞6= 0,8, 𝛼6 = 0,3, 𝑥6(0)=
Để tính tốn độ tin cậy hệ thống, tính độ tin cậy module mua (1) (2) module đơn (3) (4)
r1 = r11y11+ r12y12 r2= r21y21+ r22y22 r3= {0,83 −(0,83 − 0,52)e
−0,3(x3−2) x3≥ 2
0 x3<
r4= {0,9 −(0,9 − 0,5)e
−0,4(x4−3,5) x 4≥ 3,5
0 x4< 3,5
Độ tin cậy module tích hợp Keyword (5) là:
𝑟5 = {𝑟5(𝑚)− (𝑟5(𝑚)− 𝑟5(0)) 𝑒−0,25(𝑥5−4) 𝑥5≥
0 𝑥5<
trong 𝑟5(0)= 𝑟2𝑟4 𝑟5(0)= 0,8𝑟5(𝑚)
độ tin cậy module tích hợp Database-indexing (6)
𝑟6 = {𝑟6(𝑚)− (𝑟6(𝑚)− 𝑟6(0)) 𝑒−0,3(𝑥6−3) 𝑥6≥
0 𝑥6<
khi 𝑟6(0)= 𝑟1𝑟3𝑟5 𝑟6(0)= 0,8𝑟6(𝑚)
Bài toán:
max 𝑅̂
S.T
𝑐11𝑦11+ 𝑐12𝑦12+ 𝑐21𝑦21+ 𝑐21𝑦21+ 𝑥3+ 𝑥4+ 𝑥5+ 𝑥6≤ 𝐵 𝑦11+ 𝑦12=
𝑦21+ 𝑦22=
𝑥𝑖 ≥ 𝑥𝑖(0), 𝑖 = 3, 4, 5, 𝑦11, 𝑦12, 𝑦21, 𝑦22= 0ℎ𝑜ặ𝑐1
(5)Bảng Giải pháp cho nguồn ngân sách khác
B y11 y12 y21 y22 x3 x4 x5 x6
Độ tin cậy Tối ưu
25 1 2,0000 4,0000 4,0000 3,0000 0,11826
26 1 2,0000 4,0000 4,0000 3,0000 0,15205
30 1 3,3816 5,6183 4,0000 3,0000 0,2518
35 1 5,1168 6,9833 4,7556 4,1441 0,3491
40 1 6,3842 7,9627 6,2414 5,4115 0,4269
45 1 7,6511 8,9325 7,7371 6,6785 0,4870
50 1 8,9178 9,8958 9,2410 9,9452 0,5316
55 1 10,1842 10,8547 10,7494 9,2116 0,5639
60 1 11,4505 11,8105 12,2610 10,4778 0,5868
70 1 13,9826 13,7167 15,2906 13,0099 0,6140
80 1 16,5145 15,6189 18,3246 15,5418 0,6270
100 1 21,5779 19,4188 24,3978 20,6053 0,6361
150 1 34,2205 28,9238 39,5821 33,2734 0,63863
200 1 46,7863 37,8185 56,3336 45,0614 0,63868
2 MƠ HÌNH TỔNG QUÁT
Giả sử phần mềm tồn n module module mua bên thị trường phát triển công ty Cho zi biến nhị phân, zi =
thì module i phát triển công ty, ngược lại zi = module i mua từ
bên ngồi Số version module i mua bên thị trường ni
module mua mua version số version module Từ module phát triển cơng ty mua từ bên thị trường, zi +
i
n
j 1yij =1 Gọi ri
là độ tin cậy module i phát triển cơng ty với chi phí xi, rij,cijlà độ tin cậy
chi phí version j củamodule i Do đó, module phần mềm i nào có độ tin cậy Ri cho bởi:
ni
j ij ij i
i
i rz r y
R
1
Tương tự, gọi Cilà chi phí để thực module i:
ni
j ij ij i
i
i xz c y
C
(6)Trong trường hợp toán phát biểu sau:
𝑀𝑎𝑥𝑅̂ (GP1)
S.T
B z x y
c
n
i i i ij
n
i n
j ij
i
1 1
(GP2)
1
1
i
n
j ij
i y
z với i1,2,,n (GP3)
1 , , ij i y
z với i1,,n; j 1,,ni (GP4) đó:
(GP1) cực đại hoá độ tin cậy
(GP2) đảm bảo tổng khoảng chi tiêu không vượt ngân sách
(GP3) đảm bảo có module i phát triển cơng ty có version mua thị trường cho module i
(GP4) đảm bảo biến yij,zilà biến nhị phân
3 GIẢI QUYẾT BÀI TOÁN
Trong giai đoạn thiết kế phần mềm, nhà quản lý ước lượng độ tin cậy phần mềm dựa vào chi phí cho Dựa vào yếu tố có cơng ty, nhà quản lý chủ động xây dựng kế hoạch phân phối chi phí việc mua phát triển module cách hợp lý để tạo phần mềm có độ tin cậy mong muốn
Để giải toán, giải pháp sử dụng phương pháp quy hoạch nguyên nhị phân [3] đề xuất việc phân phối chi phí cho module mua, kết hợp với phương pháp quy hoạch phi tuyến giải hàm số mũ nhiều biến [4], để phân phối chi phí cho module phát triển công ty Thông qua việc kết hợp này, hàm Matlab [5] dùng để xây dựng hai giải pháp cho phép kết hợp toán quy hoạch nguyên quy hoạch phi tuyến cách tự động thơng qua việc phân hoạch tốn sau:
Bước 1: Phân hoạch toán thành hai phần: module mua module phát triển công ty
Module mua: biến module mua biến nguyên nhị phân (chỉ nhận giá trị: 1) thực thông qua toán quy hoạch nguyên
Phần module phát triển công ty: biến module phát triển công ty biến thực Hàm mục tiêu hàm nhiều biến, điều kiện ràng buộc phương trình phi tuyến, tốn quy hoạch phi tuyến dễ dàng thực cho phần module phát triển công ty
(7)Hình Sự phân hoạch tốn
Do vấn đề đặc biệt này, phân hoạch tốn thành hai toán để giải Giả sử kinh phí cung cấp cho dự án phần mềm B, trích phần B’ để mua module, phần lại (B-B’) dùng vào việc phát triển module công ty
Vấn đề phân phối chi phí module mua module phát triển công ty vấn đề quan trọng giải tốn tối ưu hóa phân phối chi phí cho độ tin cậy phần mềm Hai vấn đề thực để tối ưu hoá toán là: (1) tìm độ tin cậy lớn có để khơng vượt q giới hạn ngân sách cho; (2) tìm chi phí nhỏ phần mềm có độ tin cậy số cho trước Để giải hai vấn đề nêu trên, cần thực hai toán sau:
3.1 Bài toán
Tìm giải pháp phân phối chi phí để phần mềm có độ tin cậy lớn mà không vượt giới hạn ngân sách cho, bước để thực toán:
Bước 1: (Khởi tạo) nhập vào thông số module phần mềm:
Số module phần mềm, số module mua, số module đơn phát triển công ty
Số version module mua, chi phí độ tin cậy version
Chi phí khởi tạo, độ tin cậy lớn nhất, độ tin cậy nhỏ nhất, thông số phản ánh độ nhạy module đơn phát triển cơng ty
Chi phí khởi tạo, thơng số phản ánh tương thích module con, thông số phản ánh độ nhạy module tích hợp, module module tích hợp, chuyển sang bước
Bước 2: Nhập chi phí để phát triển phần mềm (B) Nếu
m
i
n
m i
i
i x
c B
1
) ( (min)
thì yêu cầu nhập lại B, ngược lại chuyển sang bước
Bước 3: Nhập tổng chi phí để mua module mua B' Nếu
m
i i m
i
i B c
c
1 (max)
(min)
'
n
m i
i
x B
B
1 ) (
' yêu cầu nhập lại B', ngược lại chuyển sang bước
Bước 4: Tính độ tin cậy chi phí cho module mua, chuyển sang bước