|
Дастурий таъминотни ишлаб чикиш технологияси
|
bet | 39/82 | Sana | 29.05.2024 | Hajmi | 6,67 Mb. | | #256570 |
Bog'liq Dasturiy ta\'mnot sifatini ta\'minlashi UMK 2021 2022 (2)Ko'rsatkichlar
|
Tavsif
|
|
vaznli usullar (WMC)
|
Sinf murakkabligining nisbiy o'lchovini uning har bir usulining siklomatik murakkabligiga asoslangan holda aks ettiradi. Murakkab usullar va ko'proq usullarga ega bo'lgan sinf yanada murakkab hisoblanadi. Ko'rsatkichni hisoblashda ota-onalar sinflari hisobga olinmaydi.
|
|
Har bir sinf uchun vaznli usullar (WMC2)
|
Ko'proq usullarga ega bo'lgan sinf murakkabroq va ko'proq parametrli usul ham murakkabroq ekanligiga asoslangan sinfning murakkabligi o'lchovi. Ko'rsatkichni hisoblashda ota-onalar sinflari hisobga olinmaydi.
|
|
Meros daraxtining chuqurligi
|
Ushbu modulda tugaydigan eng uzun meros yo'lining uzunligi. Modulning meros daraxti qanchalik chuqurroq bo'lsa, uning xatti-harakatlarini taxmin qilish shunchalik qiyin bo'ladi. Boshqa tomondan, chuqurlikni oshirish ma'lum modulga o'zining ajdodlari sinflari uchun belgilangan xatti-harakatlarni qayta ishlatish uchun ko'proq imkoniyatlar beradi.
|
|
Ulanish ob'ektlar (ob'ektlar orasidagi bog'lanish)
|
Mijoz yoki provayder rolida ushbu modul bilan bog'langan modullar soni. Haddan tashqari ulanish modulli inkapsulyatsiyaning zaifligini ko'rsatadi va kodni qayta ishlatishni oldini oladi.
|
|
Javob ustida sinf (sinf uchun javob)
|
Sinf misollari tomonidan chaqirilishi mumkin bo'lgan usullar soni; mahalliy usullar sonining yig'indisini ham, masofaviy usullar sonini ham hisoblab chiqadi
|
|
Ishlab chiqilgan tizimlarning aksariyati alohida operatsiyalarni bajarishda ayniqsa qattiq cheklovlarni talab qilmaydi. Biroq, muammolar mavjud, xususan, matematik bo'lib, ularni hal qilish yuz millionlab operatsiyalarni talab qiladi, ularning har biri biroz sekinroq yoki tezroq bajarilishi mumkin. Natijada, hisoblash vaqti o'nlab soatlarga ko'payadi yoki kamayadi. Bu, ayniqsa, tashqi ta'sirlarga javob berish tezligidan muhimroq narsa yo'q, qaror qabul qilish tizimlarida juda muhimdir.
Aytaylik, siz dastur ishlab chiqdingiz va uning mijoz talab qilganidan sekinroq ishlashini aniqladingiz. Nima qilish kerak? Dasturni yana takrorlashim kerakmi? Yo'q, birinchi navbatda uni optimallashtirishga harakat qilish kerak. Aksariyat hollarda bu muvaffaqiyatga olib keladi.
Dasturni optimallashtirish deganda biz mavjud operatorlarni tezroqlari bilan almashtirish jarayonini tushunamiz. Optimallashtirish dasturning deyarli barcha elementlariga taalluqlidir: operatorlardan tortib hisob-kitoblarni amalga oshirish usuligacha.
Agar dasturingizda shartli ko'rsatmalar mavjud bo'lsa, ayniqsa tsikllarda, birinchi navbatda ularga e'tibor berishingiz kerak. Shartli gaplar ko'pincha bir xil o'zgaruvchining qiymatiga qarab dallanayotganda ishlatiladi . standartlashtirish sertifikatlash dasturi bilan
Loop operatorlari, ehtimol, dasturingizda mavjud. Bu erda optimallashtirish oddiy: iloji bo'lsa, WHILE va REPEAT iboralarini birinchi ikkitasiga qaraganda taxminan 10-15 foizga tezroq ishlaydigan FOR bayonoti bilan almashtiring.
Turli xil hisob-kitoblarni optimallashtirishning asosiy g'oyasi juda oddiy: tezroq operatsiyalardan foydalaning va iloji bo'lsa, kasr sonlarni butun sonlar bilan almashtiring.
Disk kiritish-chiqarish juda sekin. Floppy diskka kirish qattiq diskka kirishdan taxminan uch baravar ko'p vaqt oladi. Bu haqiqatni dasturni loyihalashning dastlabki bosqichlarida hisobga olish kerak. Ko'pgina hollarda, kirish / chiqish tezligi hal qiluvchi ko'rsatkich emas. Biroq, katta hajmdagi ma'lumotlar bilan ishlash (masalan, bir necha ming elementlardan iborat tabiiy ma'lumotlar massivi) ba'zan tizimning hayotiyligiga ta'sir qilishi mumkin bo'lgan juda katta vaqtni talab qiladi.
Bunday vazifalarda o'qish va yozish protseduralaridan foydalangan holda an'anaviy kiritish va chiqarish qabul qilinishi mumkin emas. Bitta yo'l bor: xotirada tayyorlangan ma'lumotni bloklarga bo'lib diskka yozib, xuddi shu tarzda o'qing. Buning uchun BlockRead va BlockWrite protseduralaridan foydalanishingiz mumkin.
BlockRead va BlockWrite protseduralaridan foydalanmasdan matnli fayllarni qayta ishlash dasturlari (masalan, kontekst yordam fayli) ish faoliyatini yaxshilash mumkin. Bunday dasturlar ko'pincha foydalanuvchi bilan faol muloqotga ega bo'lib, ularning samaradorligi fayl operatsiyalarini bajarishdagi mumkin bo'lgan kechikishlar tufayli sezilarli darajada kamayishi mumkin. Ushbu vaziyatdan chiqish yo'li standart bufer hajmini oshirishdir. Uning hajmi 128 bayt. Matnli fayl uchun buferni 8192 baytgacha oshirish orqali siz fayl operatsiyalari tezligini deyarli 2 baravar oshirishingiz mumkin:
Agar dastur juda ko'p qatorli ishlarni bajarayotgan bo'lsa, sekin operatsiyalardan foydalanish vaqtni katta yo'qotishga olib kelishi mumkin. Eng sekin satr operatsiyasi "+". Agar u (masalan, matnni lingvistik tahlil qilish paytida yoki satrni ishga tushirishda) tsikldagi satrni o'stirish uchun ishlatilsa, uni tayinlash operatsiyasi bilan almashtirish kerak.
Agar dastur tez-tez Soru protsedurasini bajarsa, u holda Soruni Move buyrug'i bilan almashtirish vaqtni yarmiga qisqartiradi.
Massivlar bilan ishlashni optimallashtirish deyarli mumkin emas, chunki amallar odatda butun massivda emas, balki massiv elementlarida bajariladi. Biroq, ratsional massivni ishga tushirish orqali vaqt ichida ma'lum daromad olish mumkin.
|
| |