10-bob bo’yicha nazorat savollari
Dasturiy ta’minot arxitekturasi deganda nimani tushunasiz.
Arxitektura ko’rinishi necha komponentdan iborat?
Arxitektura ko’rinishlarini necha asosiy turga bo’linadi?
Modulli ko’rinishlarga misollar keltiring.
Joylashish turlariga misollar keltiring.
Arxitektura shablonlariga misollar keltiring.
Dastur arxitekturasining mezonlari
Modulli arxitektura deganda nimani tushunasiz.
Masshtablilik (Scalability) deganda nimani tushunasiz.
Modullarni almashtirish imkoniyati (Swappability)
BOB. DASTURLARNI KONSTRUKSIYALASHNING AMALIY JIHATLARI § 11.1. Dasturiy ta’minot o’lchovlari
Vaqti-vaqti bilan qiziqish paydo bo’ladigan va yo’qoladigan dasturlash mavzularidan biri bu dasturiy kod ko’rsatkichlari masalasidir. Katta dasturiy ta’minot muhitida vaqti-vaqti bilan turli o’lchovlarni hisoblash mexanizmlari paydo bo’ladi. Mavzuga bo’lgan qiziqish shundan iboratki, ular bilan nima qilish kerakligini hali aniqlanmagan.
Ya’ni, ba’zi bir instrumentlar ba’zi o’lchovlarni yaxshi hisoblash imkonini beradigan bo’lsa ham, keyin nima qilish kerakligi ko’pincha noaniq bo’lib qoldmoqda. Albatta, ko’rsatkichlar kod sifatini nazorat qilish, dasturchilarning "ishlashi" (tirnoq belgilarida) va loyihani ishlab chiqish tezligi.
Umuman olganda, o’lchovlardan foydalanish loyiha menejerlari va korxonalarga ishlab chiqilgan yoki hatto ishlab chiqilayotgan loyihaning murakkabligini o’rganish, ish hajmini, ishlab chiqilgan dastur uslubini va har bir ishlab chiquvchining ma’lum bir yechimni amalga oshirish uchun sarflagan sa’y- harakatlarini baholash imkonini beradi. Biroq, o’lchovlar faqat maslahat xarakterida bo’lib xizmat qilishi mumkin, ularni to’liq qo’llab bo’lmaydi, chunki dasturchilar dasturiy ta’minotni ishlab chiqishda o’z dasturi uchun u yoki bu o’lchovni minimallashtirish yoki maksimal darajada oshirishga harakat qilib, dastur samaradorligini pasaytirishgacha bo’lgan usullarga murojaat qilishlari mumkin. Bundan tashqari, agar, masalan, dasturchi oz sonli kod satrlarini yozgan bo’lsa yoki oz sonli tarkibiy o’zgarishlarni amalga oshirgan bo’lsa, bu uning hech narsa qilmaganligini anglatmaydi, lekin bu dastur nuqsoni juda qiyin bo’lganligini anglatishi mumkin. Biroq, oxirgi muammoni qisman murakkablik ko’rsatkichlari yordamida hal qilish mumkin, chunki murakkabroq dasturda xatoni topish qiyinroq.
Dasturiy ta’minot ko’rsatkichi - bu dasturiy ta’minotning ba’zi xususiyatlari yoki uning texnik xususiyatlarining raqamli qiymatini olish imkonini beruvchi o’lchov. Miqdoriy usullar boshqa sohalarda yaxshi ishlaganligi sababli, ko’plab
kompyuter olimlari va amaliyotchilar ushbu yondashuvni dasturiy ta’minotni ishlab chiqishga o’tkazishga harakat qilishdi. Tom DeMarko aytganidek, "siz o’lchay olmaydigan narsani nazorat qila olmaysiz". Amaldagi o’lchovlar to’plamiga quyidagilar kiradi:
o’sish tartibi (asimptotik tahlil va O-notatsiya nuqtai nazaridan algoritmlarni tahlil qilishni anglatadi),
kod satrlari soni,
siklomatik murakkablik,
funktsiya nuqtalarini tahlil qilish,
kodning 1000 satridagi xatolar soni,
test orqali kodni qamrab olish darajasi,
talablarni qoplash ,
sinflar va interfeyslar soni,
Robert Sesil Martin tomonidan ishlab chiqilgan dasturiy paket o’lchovlari,
bog’liqlik.
Avvalo, dasturlarning dastlabki kodining miqdoriy xususiyatlarini hisobga olish kerak (ularning soddaligini hisobga olgan holda). Eng elementar ko’rsatkich bu kod satrlari soni (SLOC). Ushbu ko’rsatkich dastlab loyihaning mehnat xarajatlarini baholash uchun ishlab chiqilgan. Biroq, bir xil funktsiyani bir nechta satrlarga bo’lish yoki bitta satrda yozish mumkinligi sababli, bir qatorda bir nechta buyruqlar yozilishi mumkin bo’lgan tillar paydo bo’lishi bilan metrikani deyarli qo’llamaydi. Shuning uchun kodning mantiqiy va jismoniy qatorlari o’rtasida farqlanadi. Kodning mantiqiy qatorlari dastur ko’rsatmalari sonidir. Ta’rifning ushbu versiyasi ham o’zining kamchiliklariga ega, chunki u ishlatiladigan dasturlash tili va dasturlash uslubiga juda bog’liq. Miqdoriy xarakteristikalarga SLOCdan tashqari qo’shimcha ravishda quyidagilar ham kiradi24:
bo’sh qatorlar soni;
izohlar soni;
24 https://habr.com/ru/company/intel/blog/106082/
izohlar foizi (izohlarni o’z ichiga olgan satrlar sonining umumiy satrlar soniga nisbati, foizda ifodalangan);
funksiyalar (sinflar, fayllar) uchun satrlarning o’rtacha soni;
funktsiyalar (sinflar, fayllar) uchun manba kodini o’z ichiga olgan o’rtacha qatorlar soni;
modullar uchun o’rtacha qatorlar soni.
Ba’zan qo’shimcha sifatida dasturning uslubini baholash farqlanadi (F). Bu dasturni n ta teng bo’laklarga bo’lish va Fi = SIGN (Ncomm.i / Ni - 0,1) formulasi bo’yicha har bir fragment uchun ballni hisoblashdan iborat, bu yerda Ncomm.i - i- chi fragmentdagi sharhlar soni, Ni - i-chi fragmentdagi satr kodlarining umumiy soni. Keyin butun dastur bo’yicha umumiy ball quyidagicha aniqlanadi:
F = SUM(Fi).
Shuningdek, dastur kodidagi ba’zi ko’rsatkichlarni hisoblashga asoslangan o’lchamlar guruhiga Halsted o’lchamlari kiradi. Ushbu o’lchamlar quyidagilarga asoslanadi:
n1 — dasturning takrorlanmas operatorlari soni, jumladan ajratuvchi belgilar, protsedura nomlari va operatsiya belgilari (operatorlar lug’ati);
n2 — dasturning takrorlanmas operandlari soni (operandlar lug’ati); N1 — dasturdagi operatorlarning umumiy soni;
N2 — dasturdagi operandlarning umumiy soni;
n1’ — dasturning takrorlanmas operatorlarning nazariy soni; n2’ — dasturning takrorlanmas operandlarning nazariy soni.
Kiritilgan belgilarni hisobga olgan holda, biz quyidagilarni aniqlashimiz mumkin:
n=n1+n2 — dastur lug’ati; N=N1+N2 — dastur uzunligi;
n’=n1’+n2’ — bu dasturning nazariy lug’ati;
N’= n1*log2(n1) + n2*log2(n2) - dasturning nazariy uzunligi (stilistik jihatdan to’g’ri bo’lgan dasturlar uchun N ning N’ dan chetlanishi 10% dan oshmaydi);
V=N*log2n — dastur hajmi;
V’=N’*log2n’ - dasturning nazariy hajmi, bu yerda n* - dasturning nazariy lug’ati;
L=V’/V — dasturlash sifat darajasi, ideal dastur uchun L=1;
L’= (2 n2)/ (n1*N2) — nazariy parametrlarni hisobga olmagan holda faqat real dastur parametrlariga asoslangan dasturlash sifat darajasi;
EC=V/(L’)2 — dasturni tushunishning murakkabligi; D=1/ L’ - dasturni kodlashning murakkabligi;
y’ = V/ D2 — ifodaning til darajasi;
I=V/D — dasturning axborot mazmuni, bu xususiyat dasturni yaratish uchun aqliy xarajatlarni aniqlash imkonini beradi;
E=N’ * log2(n/L) — dasturni ishlab chiqishda zarur bo’lgan intellektual harakatni baholash, dasturni yozishda talab qilinadigan elementar qarorlar sonini tavsiflash.
Halsted o’lchovlaridan foydalanganda, bir xil funktsiyani turli xil qatorlar va operatoralr yoirdamida yozish imkoniyati bilan bog’liq kamchiliklar qisman qoplanadi. Dasturiy ta’minotning miqdoriy o’lchovlarining yana bir turi Jilba o’lchovlaridir. Ular dasturning shartli operatorlar yoki davriy operatorlari bilan to’ldirilganligiga asoslangan dasturiy ta’minotning murakkabligini ko’rsatadi. Ushbu ko’rsatkich, soddaligiga qaramay, dasturni yozish va tushunishning murakkabligini juda yaxshi aks ettiradi va shartli va davriy operatorlarni joylashtirishning maksimal darajasi kabi ko’rsatkichni qo’shganda, ushbu ko’rsatkichning samaradorligi sezilarli darajada oshadi.
Do'stlaringiz bilan baham: |