Tashqi standartlardan foydalanish (Use of External Standards)
Modul ulanishi va birlashishi asosida murakkablikni baholash
Download 307.5 Kb.
|
5.4. Modul ulanishi va birlashishi asosida murakkablikni baholash
Modulli dasturiy ta’minot tizimi murakkabligining mumkin bo’lgan modellaridan biri uning modullarining asosiy xususiyatlariga asoslangan - har bir modulning ulanishi va har bir modul juftini birlashtirish. Yuqorida, modullarning ulanishi va birlashtirilishi uchun raqamli baho (0 dan 10 gacha) berilgan. Aytgancha, har xil mualliflar ushbu diapazonda modulning har bir turi uchun biroz boshqacha qiymatlar berishini unutmang. Dasturiy ta’minot tizimining murakkabligini S baholash uchun biz 0 dan 1 gacha bo’lgan raqamli diapazonni tanlaymiz. Bunday 88
holda biz yuqori ulanish va zaif birlashma nolga yaqin raqam bilan tavsiflanadi deb taxmin qilamiz. Shunday qilib, S qiymati biriga qanchalik yaqin bo’lsa, PS shunchalik murakkab bo’ladi. Raqamli bahoning qiymatiga bu yondashuv bilan, CC (ulanish kuchi) va SC (yopishish kuchi) koeffitsientlarining qiymatlarini 5.2-jadvalda ko’rsatilgan tartibda o’zgartirish zarur. Modul ulanish darajasi
Agar A moduli o’zgarsa, B va C modullarini o’zgartirish kerak bo’ladi (birinchi darajali bog’liqliklar). Biroq, modulni o’zgartirgandan so’ng, C moduli o’zgartirilgan bo’lsa ham, B modulini o’zgartirish kerak bo’lishi mumkin (ikkinchi darajali qaramlik: qirralar ac - cb). 4-rasmdan ko’rinib turibdiki, B moduli uchun uchinchi darajali bog’liqlik ham bo’lishi mumkin: ac - cd - de - eb qirralari (chekka eb nuqta chiziq bilan ko’rsatilgan) 5.4-rasm. Dastur modullari grafi12 Данилкин Ф.А., Сычугов А.А. Конструирование программного обеспечения: учебное пособие. Изд-во ТулГУ, 2010. 89
Har qanday modul juftligi orasidagi bog’liqliklarni to’liq tasvirlash uchun to’liq bog’liqlik matritsasi hisoblanadi. Bu quyidagi bosqichlar ketma -ketligi yordamida amalga oshiriladi. 1. Grafikdagi har bir modul jufti orasidagi barcha yo’llarni (tsikllardan tashqari) toping. 2. Har bir topilgan yo’lning ehtimolliklarini mos keladigan yoylar uchun ehtimolliklar hosilasi sifatida hisoblang. 3. Modullar orasidagi bog’liqliklarni yo’llar ehtimolini hisobga olgan holda hisoblang, lekin yo’llarni bir -birini inkor etuvchi deb hisoblamang. Natijada, modullardan birini, agar boshqasi o’zgarsa, o’zgartirish kerak bo’ladi (ehtimol, bu nisbat nosimmetrik deb taxmin qilinadi). Misol. 5.4-rasmda ko’rsatilgan modullar grafi uchun modullarning ulanishi va birlashishini tavsiflovchi quyidagi dastlabki ma’lumotlar berilgan bo’lsin: sA = 0,5; sB = 0,7; sC = 0,3; sD = 0,9; sE = 1,0; cAB = 0,5; cAC = 0,7; cCB = 0,3; cCD = 0,1; cDE = 0.3. Graf yoylarining ehtimolligiga mos keladigan birinchi darajali matritsaning elementlarini hisoblaymiz: 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: 90
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: PAB = dAB = 0,53; PACB = dAC * dCB = 0,61 * 0,36 = 0,22. PAC = dAC = 0,61; PABC = dAB * dBC = 0,53 * 0,36 = 0,19. PACD = dCA * dCD = 0,61 * 0,25 = 0,15; PABCD = dAB * dBC * dCD = =0,53 * 0,36 * 0,25 = 0,05. 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. Милованов И.В., Лоскутов В.И. Основы разработки программного обеспечения вычислительных систем: учебное пособие. – Тамбов: Изд-во ГОУ ВПО ТГТУ, 2011. 91
PBC = dBC = 0,36; PBAC = dBA * dAC = 0,53 * 0,61 = 0,32. PBCD = dBC * dCD = 0,36 * 0,25 = 0,09; PBACD = dBA * dAC * dCD = =0,53 * 0,61 * 0,25 = 0,08. 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. PCD = dCD = 0,25. PDE = dDE = 0,495. 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. 92 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 Милованов И.В., Лоскутов В.И. Основы разработки программного обеспечения вычислительных систем: учебное пособие. – Тамбов: Изд-во ГОУ ВПО ТГТУ, 2011. 93
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. Download 307.5 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling