CUNG CẤP CHI PHÍ CHO ĐỘ TIN CẬY PHẦN MỀM (Cost Allocation For Software Reliability)
Nội dung chính cần trình bày
• Giới thiệu • Độ tin cậy của một module được phát triển in-house • Độ tin cậy của một module mua • Độ tin cậy của một module tích hợp • Mô hình quyết định trước • Ví dụ • Mô hình chung
Giới thiệu
Độ tin cậy phần mềm: • Độ tin cậy 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: đ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. Là một thuộc tính của chất lượng phần mềm.
•
Giới thiệu (tt)
Sự cần thiết cho độ tin cậy phần
Dựa vào máy tính để gia tăng hiệu suất công
Máy tính đã được con người gắn kết vào hầu hết
Khoa học kỹ thuật đòi hỏi tốc độ về tính toán cũng
mềm • việc. • mọi thiết bị máy móc. • như độ chính xác. Một vấn đề đang làm đau đầu các nhà quản lý: sự • phân bổ tài nguyên, nguồn lực, thời gian trong các dự án phần mềm.
Giới thiệu (tt)
Giải quyết bài toán • Xác định các mudule phần mềm • Lựa chọn module dùng lại • Dự đoán tài nguyên (chi phí) và độ tin cậy • Tính toán độ tin cậy của phần mềm
Giới thiệu (tt)
Cấu trúc của một hệ thống phần mềm là có cấp bậc (cây cấu trúc):
Database indexing (6) Database indexing (6)
Parser (1) Parser (1) Parser (1)
Index generator (3) Index generator (3)
Keyword (5) Keyword (5)
Version 11
Stemmer (2) Stemmer (2) Stemmer (2)
Analyzer (4) Analyzer (4)
Version 12
Version 21
Version 22
0 i
Độ tin cậy của một module đơn được phát triển trong công ty ir
(
)
i
x i
)0( x i
)0(
m
m
)
(
((
e
)
)
r i
r i
Độ tin cậy của một module i là :
)1(
r i
x i x i
)0( x i )0( x i
r i 0
(m
)
trong đó: )0( ix : là chi phí căn bản cần thiết cho việc phát triển module i trong công ty )0( ir : độ tin cậy ban đầu của module i ir : độ tin cậy lớn nhất có thể đạt được của module i i : một thông số phản ảnh độ nhạy của độ tin cậy mỗi khi
có sự thay đổi chi phí
Độ tin cậy của một module đơn được phát triển trong công ty (tt)
Giá trị lớn sẽ tác động đến việc thay đổi chi phí.
Khi thì
và khi thì .
Hàm độ tin cậy của công thức (1)
100
Độ tin cậy của một module mua • Cho là một biến nhị phân. Có giá trị là 1 nếu version của module i là được mua, ngược lại có giá trị là 0.
• Để đảm bảo chỉ có duy nhất một version mua
cần đạt đến kết quả:
in
1
ijy
1
j
n i
r i
1
j
• Độ tin cậy của bất kỳ một mudule mua i: (2) ry ij ij
và có chi phí là:
n
ij
j
ijcyi 1
Độ tin cậy của một module tích hợp
,...,
i
)
iT ,(: i 1
s
iT
• Cho là một module tích hợp với các con i 2 • Độ tin cậy lớn nhất có thể đạt được của module i:
s
m
)
r
jk
( r T i
k
1
jkr
s
m
)
r
jk
( rqT Ti i
)0( r T i
1
k
trong đó là độ tin cậy các con Ti. qT • Độ tin cậy ban đầu: i trong đó: qTi (0 < qTi < 1): một hệ số phản ánh những lỗi
chung trên độ tin cậy ban đầu.
• Độ tin cậy của gốc Ti là:
(
m
)
m
)
iT
x iT
)0( x iT
((
)
e
( r T i
(3)
R T i
)0( r T i 0
x T i x T i
)0( x T i )0( x T i
( r T
Mô hình quyết định trước (The Predetermined Model) • Xác định trước một module sẽ được mua hoặc được phát triển trong công ty. • Giả sử một hệ thống phần mềm bao gồm: 1, 2, . . m module đơn và m+1, . . . , n module tích hợp. • Ta cũng có thể chia các module này theo cách: 1, 2, . . , m1 module mua m1 + 1, . . . , n module được phát triển trong công ty
Mô hình quyết định trước (tt) (The Predetermined Model) Công thức độ tin của cậy phần mềm (được ký hiệu ) phụ thuộc trên cấu trúc cây thứ bậc của phần mềm:
– Phần mềm bao gồm chỉ một module thì bằng độ
tin cậy của chỉ module đó.
– Module là một module được phát triển trong công
ty thì độ tin cậy được tín theo công thức (1).
– Module là một mudule mua độ tin cậy được tính
theo công thức (2).
– Module là một mudule tích hợp độ tin cậy được
tính theo công thức (3).
Mô hình quyết định trước (tt) (The Predetermined Model)
– Khi một số con của một module tích hợp lại
là các module tích hợp: + Công thức độ tin cậy cây thứ bậc phải được
tính cho con trước.
+ Sau đó mới tính cho module tích hợp cha.
Mô hình quyết định trước (tt) (The Predetermined Model)
• Bài toán (P) có thể viết:
(P1)
n
Max S.T. n i
m 1
(P2)
B
yc ij
ij
j
j
1
x 1
mj 1
i 1 in
1
(P3)
với i=1,2, . . . ,m1
ijy
j
1
(P4)
với i=m1 +1, . . . ,n và với i=1, . . . ,m1 và j=1, . . . ,ni
xi 0 yij 0,1
Mô hình quyết định trước (tt) (The Predetermined Model) • Mục tiêu (P1) là cực đại hoá độ tin cậy của hệ
thống .
• (P2) đảm bảo tổng chi phí sử dụng không vượt quá
ngân sách cho phép.
• P(3) chắc chắn module mua i có một version được
mua, với i=1,2,. . .,m.
• Cuối cùng, (P4) bảo đảm toàn bộ xi không âm và
toàn bộ yij là nhị phân.
Ví dụ
Database indexing (6)
Keyword (5)
Index generator (3)
Stemmer (2)
Analyzer (4)
Parser (1) Version 11
Version 21
Version 12
Module tích hợp
Version 22
Module mua
Module phát triển
Ví dụ (tt)
• Parse(1) và Stemmer (2): 2 module mua và công
thức độ tin cậy là (2): r1 và r2.
• Index-generator(3) và Analyzer(4): 2 module chương trình được phát triển trong công ty và công thức độ tin cậy (1) là r3 và r4.
• Keyword(5), Database-indexing(6) : module tích
hợp được áp dụng công thức (3): r5, r6.
Ví dụ (tt)
• Giả sử ta chọn các thông số ngẫu nhiên:
,7.0
5
,9.0
6
c 11 c 12 c
,87.0
7
,95.0
8
21 c
m
)
,83.0
,53.0
,3.0
2
22 )0( r 3
m
)
,9.0
,5.0
,4.0
x
3
)0( x 3
5.3
)0( r 4
4
)0( 4
,7.0
,25.0
4
)0( x 5
r 11 r 12 r 21 r 22 ( r 3 ( r 0 q 5 q
,8.0
,3.0
3
6
5 6
)0( x 6
Ví dụ (tt)
yr 12
yr 11
12
11
Độ tin cậy của các module mua 1 và 2 và các module chương trình 3 và 4 được tính trước: r 1
r 2
yr 21
yr 22
21
22
(3.0
)2
x 3
x
2
e
83.0(
3
r 3
Otherwise
)53.0 0
(4.0
x
)5.3
4
x
5.3
e
4
r 4
Otherwise
0
83.0 )5.09.0(9.0
Ví dụ (tt)
• Độ tin cậy của Keyword(5) là:
(25.0
)3
m
)
m
)
x 6
4
(
)
e
x 5
( r 5
r 5
Otherwise
)0( r 5 0
( r 5
r m ( ) 5
rr 42
trong đó:
)
8.0
0 r 5
mr ( 5
Ví dụ (tt)
• là độ tin cậy Database-indexing (6)
(3.0
)3
)
m
m
)
x 6
4
(
)
e
x 6
( r 6
)0( r 6
r 6
Otherwise
0
( r 6 trong đó:
r m ( ) 6
rrr 351
)
8.0
0 r 6
mr ( 6
Ví dụ (tt):
Bài toán ràng buộc:
max TS . .
6
5
7
y
8
y
x
B
22
x 3
4
x 5
x 6
21
y 12
1
y 11
1
y 12 y
y 11 y
22 x
,0
21
,0
,0
0
x 6
4 y
x 5
,
,
,
y
1,0
x 3 y 11
y 12
22
21
Bảng kết quả độ tin cậy tối ưu với chi phí trong khoảng 25 đến 200
x4
x5
x6
B y11 y12 y21 y22
x3
Độ tin cậy tối ưu
0
0
25 1 0 1 2 4 4 3 0.11826
1
26 0 1 1 2 4 4 3 0.15205
1
0
1
30 0 0 1 3.3816 5.6183 4 3 0.2518
1
0
1
35 0 5.1168 6.9833 4.7556 4.1441 0.3491
1
0
1
40 0 6.3842 7.9627 6.2414 5.4115 0.4269
1
0
1
45 0 7.6511 8.9325 7.7371 6.6785 0.4870
1
0
1
50 0 8.9178 9.8958 9.2410 9.9452 0.5316
1
0
1
55 0 9.2116 10.1842 10.8547 10.7494 0.5639
1
0
1
60 0 11.4505 11.8105 12.2610 10.4778 0.5868
1
0
1
70 0 13.9826 13.7167 15.2906 13.0099 0.6140
1
0
1
80 0 16.5145 15.6189 18.3246 15.5418 0.6270
1
0
1
100 0 21.5779 19.4188 24.3978 20.6053 0.6361
1
0
1
150 0 34.2205 28.9238 39.5821 33.2734 0.63863
200 0 46.7863 37.8185 56.3336 45.0614 0.63868
Mô hình chung (The General Model)
• Các module chương trình là 1, . . . ,m. • Mỗi module i có thể là mua ở bên ngoài hoặc được phát
triển trong công ty.
• Số version của các module mua là ni với I = 1, . . .,n. • Cho zi là một biến nhị phân, zi = 1 nếu module i là được
phát triển trong công ty, ngược lại zi = 0.
• Do một module có thể được phát triển trong công ty
hoặc được mua:
in
z
y
1
i
ij
j
1
Mô hình chung (tt) (The General Model)
• Cho ri là độ tin cậy đạt được với chi chí xi khi
module i được phát triển trong công ty.
• Với bất kỳ module chương trình i nào, nó có
độ tin cậy Ri :
n i
R i
zr i
i
ry ij ij
j
1
Bài toán mô hình chung
(GP1)
m
n
x
B
yc ij
ij
j
1
Max S.T. n i
(GP2)
i
1
j
1
j
1
n i
z
y
1
i
ij
Với i=1,2, . . . , m
(GP3)
j
1
Với i=1,2, . . . , m
(GP4)
Uz
i
)0( x i
Với i=1,2, . . . , n và
0
(GP5)
x i x i yij = 0,1 với i=1, . . . ,m và j=1, . . ., ni
Trong đó:
U là số lớn nhất (ví dụ U=1,000,000)
là số nhỏ nhất (ví dụ =0.000001)
Bài toán mô hình chung (tt)
• (GP1) cực đại hoá tổng độ tin cậy • (GP2) đảm bảo rằng tổng sự tiêu dùng là không
quá ngân sách
• (GP3) đảm bảo rằng một module được pháp triển
trong công ty hoặc được mua
• (GP4) đảm bảo ràng buộc rằng xi và ri sẽ bằng 0
nếu một trong số các version là được mua.