Скачиваний:
0
Добавлен:
25.02.2026
Размер:
158.72 Кб
Скачать

3-lekciya. Programma sapasınıń ólshemleri hám metrika. Ishki hám sırtqı sapa.

Jobası:

1.Programmalıq metrologiya hám ólshew procesiniń tiykarları (GQM metodı).

2.Ónim metrikaları: Kod kólemi (LOC), Quramalılıq (Cyclomatic Complexity) hám Sapa indeksleri.

3.Process metrikaları: Qáteler tıǵızlıǵı, Dúzetiw waqtı hám Test qamtıwı.

4.Ishki hám sırtqı sapa metrikalarınıń baylanısı hám ámeliy qollanılıwı.

Programmalıq metrologiya hám GQM metodı

Programmalıq támiynat sapasın basqarıw ushın onı tek "sezim" dárejesinde emes, al "sanlı" dárejede ólshew kerek. "Programmalıq metrologiya" (Software Metrology) – bul programmalıq ónimlerdiń hám processlerdiń qásiyetlerin sanlı mánisler (metrikalar) arqalı bahalaw ilimi. Lord Kelvin aytqanınday: "Eger siz bir nárseni ólshey almasańız, siz onı basqara almaysız". Sapanı ólshew bizge obyektiv sheshimler qabıllawǵa (mısalı, "Programma relizge tayın ba?"), progressi baqlawǵa hám qáwiplerdi aldın ala kóriwge járdem beredi. Ólshew procesi tosınnan tańlanǵan sanlardı jıynaw emes. Maqsetsiz jıynalǵan metrikalar waqıttı bosqa ketiredi hám nadurıs juwmaqlarǵa alıp keledi. Sol sebepli, metrikalardı tańlawda "GQM" (Goal-Question-Metric) metodı qollanıladı. Bul metod úsh basqıshtan turadı: 1) Maqset (Goal): Biz neni jaqsılawdı yamasa tekseriwdi qáleymiz? (Mısalı, "Qáteler sanın azaytıw"). 2) Soraw (Question): Maqsetke jetiw ushın ne biliwimiz kerek? (Mısalı, "Qaysı modullerde qáte kóp?"). 3) Metrika (Metric): Sorawǵa juwap beriw ushın neni ólshewimiz kerek? (Mısalı, "Hár 1000 qatar kodqa tuwrı keletuǵın qáteler sanı").

Programmalıq metrikalar úsh tiykarǵı kategoriyaǵa bólinedi: 1) Ónim metrikaları (Product Metrics) – kodtıń, hújjetlerdiń yamasa dizaynnıń sapasın ólsheydi (mısalı, kod kólemi, quramalılıq). 2) Process metrikaları (Process Metrics) – islep shıǵıw hám testlew procesiniń ónimliligin ólsheydi (mısalı, qáteni tabıw waqtı, testlewge ketken waqıt). 3) Proekt metrikaları (Project Metrics) – proekttiń sttatusın hám resursların ólsheydi (mısalı, byudjet, grafika, komanda júklemesi).

Metrikalardıń durıs interpretaciyası (túsinililiwi) júdá áhmiyetli. Mısalı, eger bir programmist kúnine 10 qáte taba alsa, al ekinshisi 2 qáte tapsa, bul birinshisiniń

"jaqsı tester" ekenin ańlatpaydı. Bálkim, birinshisi sapasız kod penen islep atırǵan bolıwı múmkin. Sol sebepli, metrikalar adamalardı bahalaw ushın emes, al processti hám ónimdi bahalaw ushın qollanılıwı kerek. Nadurıs qollanılǵan metrikalar komandada "metrika ushın islew" (gaming the system) jaǵdayın payda etiwi múmkin.

Ónim metrikaları: Kod kólemi hám Quramalılıq

Programmalıq ónimniń eń ápiwayı hám eń kóp qollanılatuǵın metrikası – bul "Kod qatarları sanı" (LOC - Lines of Code). KLOC (mıń qatar) birliginde ólshenedi. LOC programmanıń kólemin hám shamalı miynet sıyımlılıǵın bahalawǵa járdem beredi. Biraq LOC – bul "qopal" ólshem. Bir máseleni

Assembly tilinde 100 qatar menen, al Python tilinde 5 qatar menen sheshiwge boladı. Sonıń ushın LOC tek bir til hám birdey stil ishindegi salıstırıwlar ushın jaramlı. Sonday-aq, kodtıń kóp bolıwı onıń sapalı ekenin bildirmeydi, kerisinshe, ıqsham kod kóbinese sapalıraq boladı. Sapanı anıǵıraq ólshew ushın "Quramalılıq metrikaları" qollanıladı. Olardıń eń ataqlısı – "Makkeyb Ciklomatikalıq Quramalılıǵı" (McCabe Cyclomatic Complexity). Bul metrika kodtaǵı ǵárezsiz jollar (tarmaqlanıwlar) sanın ólsheydi. Formula: M = E - N + 2P (yamasa ápiwayı: Shártli operatorlar sanı + 1). Eger kodta if, while, for kóp bolsa, quramalılıq artadı. M > 10 bolsa, kod quramalı hám qátege beyim dep esaplanadı. M > 50 bolsa, kodtı testlew derlik múmkin emes. Quramalılıqtı basqarıw – sapanı basqarıwdıń gilti.

Jáne bir metrika toparı – "Xolsted metrikaları" (Halstead Metrics). Moris Xolsted programmanıń kólemin hám qıyınlıǵın operatorlar (n1) hám operandlar (n2) sanına qarap esaplawdı usınıs etti. Xolsted formulası arqalı "Programma kólemi", "Potencial qáteler sanı" hám "Jumsalıwı kerek bolǵan waqıt"tı boljawǵa boladı. Bul metrikalar kodtıń leksikalıq strukturasına tiykarlanǵan.

Zamanagóy Obyektke Baǵdarlanǵan Programmalastırıwda (OBP) arnawlı metrikalar qollanıladı (CK Metrics - Chidamber & Kemerer). Mısalı: WMC (Weighted Methods per Class) – klastıń quramalılıǵı, DIT (Depth of Inheritance Tree) – miyrasxorlıq tereńligi, CBO (Coupling Between Objects) – klasslar arasındaǵı baylanıs. Jaqsı sapa ushın CBO tómen (Low Coupling) hám LCOM (Lack of Cohesion) tómen (High Cohesion) bolıwı kerek. Bul metrikalar arxitekturanıń sapasın kórsetedi.

Process metrikaları hám Sapa indeksleri

Sapa tek kodtıń jaǵdayına emes, al onı jaratıw hám testlew procesine de baylanıslı. Process metrikalarınıń eń áhmiyetlisi – "Qáteler tıǵızlıǵı" (Defect Density). Ol tabılǵan qáteler sanınıń kod kólemine qatnası menen ólshenedi (Defects / KLOC). Mısalı, hár 1000 qatarǵa 0.5 qáte tuwrı kelse, bul joqarı sapa

(industrial standart ~1-5 qáte/KLOC). Bul metrika bizge "Programma paydalanıwǵa shıǵarıwǵa tayın ba?" degen sorawǵa juwap beredi.

Ekinshi metrika – "Qátelerdi tabıw effektivligi" (DRE - Defect Removal Efficiency). DRE = (Islep shıǵıwda tabılǵan qáteler) / (Islep shıǵıwda tabılǵan + Paydalanıwda tabılǵan qáteler). DRE 100% bolsa, demek barlıq qáteler paydalanıwshıǵa jetpey turıp tabılǵan. DRE qansha joqarı bolsa, testlew procesi sonsha sapalı. Eger DRE tómen bolsa, demek testlewshi komanda qátelerdi ótkerip jiberip atır. "Test qamtıwı" (Test Coverage) – bul kodtıń neshe procenti testler menen tekserilgenin kórsetetuǵın metrika. 100% qamtıw jaqsı, biraq ol qátesizlikke kepillik bermeydi (logikalıq qáteler bolıwı múmkin). Sonday-aq, "Ortasha ońlaw waqtı" (MTTR - Mean Time To Repair) – qáte tabılǵannan keyin onı dúzetiwge ketken waqıt. Bul metrika komandanıń operativligin hám kodtıń ońlawǵa qolaylılıǵın (Maintainability) kórsetedi.

Sapanı ulıwmalastırıp bahalaw ushın "Sapa indeksleri" (Quality Index) qollanıladı. Mısalı, "Maintainability Index" (MI). Bul indeks Xolsted kólemi, Ciklomatikalıq quramalılıq hám Kod qatarları sanınan quralǵan formula arqalı esaplanadı (0-100 ball). Eger MI < 65 bolsa, kodtı ońlaw júdá qıyın hám onı qayta jazıw (refactoring) kerek. Zamanagóy IDE-lar (Visual Studio) hám statikalıq analizatorlar (SonarQube) bul indeksti avtomat túrde esaplap beredi.

Ishki hám Sırtqı sapa baylanısı

Joqarıda aytılǵan metrikalar tiykarınan "Ishki sapa"ǵa (Internal Quality) tiyisli. Ishki sapa – bul kodtıń, arxitekturanıń hám hújjetlerdiń sapası (quramalılıq, oqılıw, modullilik). Bul sapa paydalanıwshıǵa kórinbeydi, biraq programmistler ushın júdá áhmiyetli. Ishki sapa tómen bolsa ("Spagetti kod", "Texnikalıq qarız"), programmanıń rawajlanıwı toqtaydı, qátelerdi dúzetiw qımbatlaydı hám aqıraqıbette sırtqı sapa da buzıladı. "Sırtqı sapa" (External Quality) – bul programmanıń jumıs islep turǵan waqıttaǵı (Runtime) minez-qulqı. Paydalanıwshı ushın eń kereklisi – bul sırtqı sapa: programma qatıp qalmay ma? (Isenimlilik), tez isleydi me? (Ónimlilik), túsiniwge ańsat pa? (Usability). Sırtqı sapanı ólshew ushın basqa metrikalar qollanıladı: "Juwap beriw waqtı" (Response Time), "Buzılıwlar arasındaǵı ortasha waqıt" (MTBF - Mean Time Between Failures), "Paydalanıwshınıń qanaatlandırıw indeksi" (NPS - Net Promoter Score).

Ishki hám sırtqı sapa arasında tıǵız baylanıs bar. Ishki sapa – bul "sebep", sırtqı sapa – bul "nátiyje". Biraq geyde olar qarama-qarsı keliwi múmkin. Mısalı, biz kodtı júdá tez isleydi dep quramalastırıp jibersek (sırtqı sapanı – ónimlilikti arttırıw ushın), onıń ishki sapası (oqılıwı hám ońlanıwı) túsip ketiwi múmkin.

Yamasa, kodtı júdá sulıw hám modulli etip jazsaq (ishki sapa joqarı), ol sál ástelew islewi múmkin.

SQA-diń wazıypası – ishki hám sırtqı sapa arasındaǵı "Teńsalmaqlılıqtı" (Balance) tabıw. Uzaq múddetli proektlerde ishki sapaǵa (Refactoring, Clean Code) investiciya etiw kerek, sebebi bul keleshektegi qárejetlerdi azaytadı. Qısqa múddetli proektlerde (MVP, Prototipler) sırtqı sapaǵa (tezlik, funkcional) basım jasawǵa boladı. Biraq "Texnikalıq qarız"dı (ishki sapanıń tómenlewi) waqtında tólep barıw shárt.

BAQLAW SORAWLARÍ:

1.GQM (Goal-Question-Metric) metodınıń úsh basqıshın túsindirip beriń.

2.Ciklomatikalıq quramalılıq (Cyclomatic Complexity) neni ólsheydi hám onıń sapaǵa tásiri qanday?

3.Qáteler tıǵızlıǵı (Defect Density) metrikası qalay esaplanadı hám ol neni kórsetedi?

4.DRE (Defect Removal Efficiency) metrikasınıń 100% bolıwı neni ańlatadı?

5.Ishki sapa menen Sırtqı sapa arasındaǵı "Sebep-Nátiyje" baylanısın mısal menen túsindiriń.

Соседние файлы в папке Programmalıq támiynat sapasın támiyinlew