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.