dAB = 0,15 * (0,5 + 0,7) + 0,7 * 0,5 = 0,53;
dAC = 0,15 * (0,5 + 0,3) + 0,7 * 0,7 = 0,61;
dCB = 0,15 * (0,3 + 0,7) + 0,7 * 0,3 = 0,36;
dCD = 0,15 * (0,3 + 0,9) + 0,7 * 0,1 = 0,25;
dDE = 0,15 * (0,9 + 1,0) + 0,7 * 0,3 = 0,495
Olingan ma’lumotlarga asoslanib, siz birinchi darajali matritsani qurishingiz mumkin (5.5-rasm). To’liq bog’liqlik matritsasini yaratishga o’tamiz. Buni amalga oshirish uchun (bizning vizual oddiy misolimizda) biz har bir modul jufti uchun barcha yo’llarni belgilaymiz:
A, B juftlik: A – B yo‘l va A – C – B yo‘l.
A, C juftlik: A – C yo‘l va A – B – C yo‘l.
A, D juftlik: A – C – D yo‘l va A – B – C – D yo‘l.
A, E juftlik: A – C – D – E yo‘l va A – B – C – D – E yo‘l.
B, C juftlik: B – C yo‘l va B – A – C yo‘l.
B, D juftlik: B – C – D yo‘l va B – A – C – D yo‘l.
B, E juftlik: B – C – D – E yo‘l va B – A – C – D – E yo‘l.
D, C juftlik: C – D yo‘l.
D, E juftlik: D – E yo‘l.
E, C juftlik: E – D – C yo‘l.
5.5-rasm. Birinchi darajali modullarning qaramlik matritsasi13.
Biz topilgan yo’llar uchun ehtimollik qiymatlarini grafik yoylarining ehtimollik qiymatlari yordamida hisoblaymiz:
1. PAB = dAB = 0,53; PACB = dAC * dCB = 0,61 * 0,36 = 0,22.
2. PAC = dAC = 0,61; PABC = dAB * dBC = 0,53 * 0,36 = 0,19.
3. PACD = dCA * dCD = 0,61 * 0,25 = 0,15; PABCD = dAB * dBC * dCD =
=0,53 * 0,36 * 0,25 = 0,05.
4. PACDE = dAC * dCD * dDE = 0,61 * 0,25 * 0,495 = 0,15; PABCDE = dAB *
*dBC * dCD * dDE = 0,53 * 0,36 * 0,25 * 0,495 = 0,02.
13 Милованов И.В., Лоскутов В.И. Основы разработки программного обеспечения вычислительных систем: учебное пособие. – Тамбов: Изд-во ГОУ ВПО ТГТУ, 2011.
5. PBC = dBC = 0,36; PBAC = dBA * dAC = 0,53 * 0,61 = 0,32.
6. PBCD = dBC * dCD = 0,36 * 0,25 = 0,09; PBACD = dBA * dAC * dCD =
=0,53 * 0,61 * 0,25 = 0,08.
7. PBCDE = dBC * dCD * dDE = 0,36 * 0,25 * 0,495 = 0,044; PBACDE = dBA*
* dAC * dCD * dDE = 0,53 * 0,61 * 0,25 * 0, 495 = 0,04.
8. PCD = dCD = 0,25.
9. PDE = dDE = 0,495.
10. PEDC = dED * dDC = 0,495 * 0,25 = 0,12.
Endi, topilgan yo’l ehtimolliklaridan foydalanib, modullar juftligi orasidagi yo’llar bir-birini istisno qilmasligini hisobga olib, biz modullar orasidagi bog’liqlikni aniqlaymiz.
A, B juftlik. Bu yerda ikki yo‘l bo‘lishi mumkin, shuning uchun: dAB = PAB + PACB -PAB + PACB = 0,53 + 0,22 – 0,53 * 0,22 = 0,63.
A, C juftlik. Bu yerda ham ikki yo‘l bo‘lishi mumkin, shuning uchun: d1AC = PABC + PACB - PABC + PAC = 0,19 + 0,61 – 0,19 * 0,61 = 0,68.
A, D juftlik. Mumkin bo‘lgan o‘zgarishlar uchun ikkita yo‘l bor. Ushbu modullar orasidagi bog‘liqlik quyidagi qiymat bilan belgilanadi:
d1AD = PACD + PABCD - PACD * PABCD = 0,15 + 0,05 – 0,15 * 0,05 = 0,19.
A, E juftlik. Xuddi shunday, ikkita yo‘l bor, shuning uchun: d1AE = PACDE + PABCDE - PACDE * PABCDE = 0,15 + 0,02 – 0,15 * 0,02 = 0,17.
B, C juftlik. Mumkin bo‘lgan o‘zgarishlar uchun ikkita yo‘l bor, shuning uchun: d1BC = PBC + PBAC - PBC * PBAC = 0,36 + 0,32 – 0,36 * 0,32 = 0,56.
B, D juftlik. Xuddi shunday, ikkita yo‘l bor, shuning uchun: d1BD = PBCD + PBACD - PBCD * PBACD = 0,09 + 0,08 – 0,09 * 0,08 = 0,16.
B, E juftlik. Ikkita yo‘l bor, shuning uchun:
d1BE = PBCDE + PBACDE - PBCDE * PBACDE = 0,044 + 0,04 – 0,044 * 0.04 = 0,08.
C, D juftlik. Bu yerda faqat bitta yo‘l bor, shuning uchun: d1CD = PCD = dCD = 0,25.
D, E juftlik. Bu yerda ham faqat bitta yo‘l bor, shuning uchun: d1DE = PDE = dDE = 0,495.
E, C juftlik. Bu yerda ham faqat bitta yo‘l bor, shuning uchun: d1EC = PEDC = dED * dDC = 0,495 * 0,25 = 0,12.
Bu hisoblashlardan so’ng tizim modullari o’rtasida to’liq bog’liqlik matritsasini tuzishingiz mumkin (5.6-rasm).
5.6-rasm. To’liq modulga bog’liqlik matritsasi14
Olingan matritsadan, masalan, A moduli o’zgarganda, E modulining o’zgarishi ehtimoli 0,17 ga teng ekanligini aniqlashimiz mumkin. Har qanday satr elementlarini (diagonal elementdan tashqari) xulosa qilib, siz dasturning tegishli modulini o’zgartirganda o’zgartirilishi kerak bo’lgan modullar sonini hisoblashingiz mumkin. Masalan, agar C moduli o’zgarsa, o’zgarishlarning kutilayotgan soni 1,61 ni tashkil qiladi. Diagonalni olib tashlab, satrning har bir elementini 1.0 dan chiqarib, natijalarni ko’paytirib, modulni o’zgartirish boshqa modullarning o’zgarishiga olib kelmasligi ehtimolini olamiz. Masalan, C moduli uchun bu ehtimollik
P = (1 – 0,68) (1 – 0,56) (1 – 0,25) (1 – 0,12) = 0.09.
Matritsaning barcha elementlarini sarhisob qilib, yig’indini modullar soniga bo’lish orqali siz dasturiy ta’minot tizimining murakkabligi to’g’risida taxminiy baho olishingiz mumkin (diagonal va takrorlanuvchi elementlar hisobga olinmaydi). Bizning misolimizda biz 0.49 qiyinchilik qiymatini olamiz. Qiymat qanchalik
14 Милованов И.В., Лоскутов В.И. Основы разработки программного обеспечения вычислительных систем: учебное пособие. – Тамбов: Изд-во ГОУ ВПО ТГТУ, 2011.
baland bo’lsa, tizim shunchalik murakkab bo’ladi. Xulosa qilib shuni ta’kidlash kerakki, ko’rib chiqilayotgan modelning jozibadorligiga qaramay, dastur tuzilmasining asosiy xususiyatlariga asoslanganligini hisobga olsak ham, model hali ham etarli darajada tasdiqlanmagan ko’plab taxminlarga asoslangan.
Do'stlaringiz bilan baham: |