§ 5.3. Murakkablikni baholash usullari
Dasturiy ta’minot tizim loyihasini amalga oshirishda bu tizimining murakkabligini baholash katta ahamiyatga ega. Tizimning murakkabligi ishlab chiqaruvchilar mehnatining mahsuldorligini, shuningdek, ish hajmini, ishlab chiqish vaqtini va loyihaning narxini belgilaydi. Shuningdek, dasturiy ta’minot tizimining murakkabligi va ishonchliligi o’rtasida yaqin bog’liqlik mavjud. Shubhasiz, dasturiy ta’minot tizimining murakkabligi qanchalik yuqori bo’lsa, uning ishonchliligini ta’minlash shunchalik qiyin bo’ladi. Dasturlarning murakkabligini baholashda, qoida tariqasida, uchta asosiy ko’rsatkichlar guruhi ajratiladi: dasturlar hajmining o’lchovlari, dasturlarni boshqarish oqimining murakkabligi ko’rsatkichlari va dasturlarning ma’lumotlar oqimi murakkabligining ko’rsatkichlari. Birinchi guruh baholari eng sodda va shuning uchun keng qo’llaniladi.
Dastur o’lchamining an’anaviy xarakteristikasi - bu boshlang’ich yozilgan dastur kodi satrlari soni. Satr sifatida har qanday dastur operatori tushuniladi. Halsted metrikasini dasturlar hajmini baholash guruhiga kiritish mumkin. Dasturda ishlatiladigan operatorlar va operandlar sonini hisoblash asos sifatida olinadi, ya’ni. dastur hajmini aniqlanadi. Dastur hajmini to’g’ridan -to’g’ri o’lchash, soddaligiga qaramay, yaxshi natijalar beradi. Dastur hajmini taxmin qilish uning murakkabligi to’g’risida qaror qabul qilish uchun yetarli emas, lekin hajmi jihatidan bir - biridan farq qiladigan dasturlarni tasniflash juda o’rinli. Dastur hajmidagi farqlar kamayishi bilan murakkablikka ta’sir qiluvchi boshqa omillarning baholari ajratib ko’rsatiladi. Shunday qilib, dastur hajmini baholash - bu nominal shkala bo’yicha baholash, uning asosida har bir toifaga baho ko’rsatilmasdan faqat dasturlar toifalari aniqlanadi.
Dasturlashning asosiy qoidalaridan biri uni soddalashtirishdir. Oddiy dastur - bu kompilyatsiya, yuritish va o’zgartirish uchun tushunish osonroq dastur. Biroq, dasturni soddalashtiradigan umumiy qabul qilingan fikr yo’q. Oddiy dastur – bu belgi tizimidan foydalanadigan dastur. Kam sonli ichma-ich joylashtirish darajalari bo’lgan dastur, bunday darajadagi ko’p dasturlarga qaraganda sodda. Dasturlarning soddaligiga erishish uchun bir qator boshqa qoidalar mavjud, ehtimol, sodda - bu puxta ishlab chiqilgan dasturiy ta’minot tizimi. Biroq, har qanday holatda, dasturiy ta’minot tizimining murakkablik darajasini aniqlay olish maqsadga muvofiqdir.
Oddiy holatda, tizimning murakkabligi uning modullarining murakkabligi o’lchovlari yig’indisi sifatida aniqlanadi. Modulning murakkabligini turli usullar bilan hisoblash mumkin. Masalan, M. Xolsted modulning N uzunlik o’lchovini taklif qildi9.
bu yerda n1 - har xil operatorlar soni, n2 - har xil operandlar soni.
Ikkinchi o’lcham sifatida M. Xolsted modulning V hajmini (dastur matnining barcha operatorlari va operandlarini yozish uchun belgilar soni) ko’rib chiqdi:
Shu bilan birga, ma’lumki, har qanday murakkab tizim elementlar va elementlar orasidagi bog’lanish tizimidan iborat va tizim ichidagi aloqalarni e’tiborsiz qoldirish asossizdir. Dasturlarning murakkabligini baholashning ikkinchi guruhi - bu dasturlarni boshqarish oqimining murakkabligi ko’rsatkichlari. Qoida tariqasida, bu hisob -kitoblar dasturlar ichidagi boshqaruv o’tishlarining zichligi yoki bu o’tishlarning o’zaro bog’liqligi uchun ishlatiladi. Dasturlarning murakkabligini eng oddiy, lekin juda samarali baholaganlardan biri bu T. Gilb metrikasi, bunda dasturning mantiqiy murakkabligi IF_THEN_ELSE ifodalari bilan dasturning to’yinganligi sifatida belgilanadi. Bu ikkita xususiyatni ko’rsatadi:
9 Назаров С.В. Архитектуры и проектирование программных систем: монография /С.В. Назаров.
— М.: ИНФРА-М, 2013
CL - shartli bayonotlar soni bilan tavsiflanadigan dasturning mutlaq murakkabligi;
cl - dasturning nisbiy murakkabligi, dasturning shartli operatorlar bilan to’yinganligi bilan tavsiflanadi, ya’ni. cl CL ning operatorlarning umumiy soniga nisbati sifatida aniqlanadi.
Jilb metrikasidan foydalanib, uni yana bir komponent bilan to’ldirildi, ya’ni CLI operatorining maksimal ichma – ich joylashtirish darajasining xarakteristikasi, bu esa Jilb metrikasini tsiklik tuzilmalarni tahlil qilishda qo’llash imkonini berdi.
T. Makkeyb dasturiy ta’minotning murakkabligini baholashda ichki ulanishlar topologiyasi tomonidan qarashni taklif qildi. Shu maqsadda u davriy murakkablik (цикломатической сложности) metrikasini ishlab chiqdi:
V(G) = E – N + 2,
bu yerda E - yoylar soni, N – dasturiy ta’minot boshqaruv grafidagi cho’qqilar (tugunlar) soni.
Bu to’g’ri yo’nalishdagi qadam edi. Murakkablikni baholashni yanada takomillashtirish har bir modulni elementlar va ular orasidagi bog’lanishlardan tashkil topgan lokal tuzilma sifatida ko’rsatilishini talab qildi. Dasturlarning murakkabligini chegaraviy qiymatlar usuli bilan baholash katta qiziqish uyg’otadi. Bu usul dastur grafi bilan bog’liq bir nechta qo’shimcha tushunchalarni kiritadi. Dasturning faqat bitta boshlang’ich va bitta oxirgi cho’qqiga ega bo’lgan G = (V, E) yo’naltirilgan grafi mavjud bo’lsin (5.2-rasm).
5.2-rasm. Dastur grafi10.
10 Б.В. Черников. Управление качеством программного обеспечения: Учебник - М.: ИД ФОРУМ: ИНФРА-М, 2012.
Bu grafda cho’qqiga kiradigan yoylar cho’qqining manfiy darajasi, cho’qqidan chiqayotgan yoylar esa cho’qqining musbat darajasi deyiladi. Keyin grafning cho’qqilar to’plamini ikki guruhga bo’lish mumkin:
musbat darajali cho’qqilar <= 1; musbat darajali cho’qqilar > = 2.
Birinchi guruhning cho’qqilari qabul qilish cho’qqilari, ikkinchi guruhning cho’qqilari esa tanlash cho’qqilari deb ataladi. Chegaraviy qiymatlar usuli bilan baho olish uchun G grafni maksimal sondagi G’ quyi graflarga bo’lish kerak, ular quyidagi shartlarni qanoatlantirishi kerak:
quyi grafga kirish faqat tanlash cho’qqisi orqali amalga oshiriladi;
har bir quyi grafda boshqa quyi grafning har qanday cho’qqisidan erishish mumkin bo’lgan cho’qqi (quyi grafning pastki chegarasi deb ataladi) mavjud.
Masalan, tugun yoylari orqali o’zi bilan o’zi bog’langan tanlash cho’qqilari quyi grafni hosil qiladi. Bunday quyi grafni tashkil etuvchi cho’qqilar soni tanlangan cho’qqining moslashtirilgan murakkabligiga teng. Misol uchun, 5.2 - rasmdagi graf bo’yicha quyi graflarning xarakteristikalari jadvalini tuzish mumkin (5.1-jadval).
Do'stlaringiz bilan baham: |