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

1-lekciya. Programmalıq támiynattı konstrukciyalawǵa kirisiw.

Jobası:

1.Programmalıq támiynattı konstrukciyalaw túsinigi hám onıń SWEBOKtaǵı ornı.

2.Konstrukciyalawdıń tiykarǵı operaciyaları hám quramalı bólekleri.

3.Programmalıq támiynat qurılısındaǵı quramalılıqtı basqarıw.

4.Konstrukciyalawdıń sapası hám onıń programmanıń evolyuciyasına tásiri.

Konstrukciyalaw túsinigi hám áhmiyeti

Programmalıq támiynattı konstrukciyalaw – bul programmalıq injeneriyanıń eń tiykarǵı hám oraylıq processlerinen biri bolıp tabıladı. "Konstrukciyalaw" termini inglis tilindegi "Construction" sózinen alınǵan bolıp, qurılıs yamasa jaratıw degen mánisti bildiredi. Kóbinese bul processti ápiwayı ǵana "kodlaw" (coding) yamasa "programmalastırıw" dep ataydı, biraq konstrukciyalaw kod jazıwdan tısqarı, onı testlew, ońlaw (debugging) hám integraciya etiw sıyaqlı jumıslardı da óz ishine aladı. SWEBOK (Software Engineering Body of Knowledge) standartına sáykes, konstrukciyalaw – bul programmalıq támiynattıń jumıs isleytuǵın nusqasın jaratıw ushın detallı proektlestiriw, kodlaw, birlik testlew (unit testing), integraciyalaw hám tekseriw processleriniń jıyındısı.

Programmalıq támiynattıń ómirlik ciklinde konstrukciyalaw basqıshı eń kóp waqıt hám resurslardı talap etetuǵın basqısh bolıp esaplanadı. Talaplar analizi hám proektlestiriw (dizayn) basqıshlarınan keyin keletuǵın bul processte, qaǵazdaǵı yamasa modeldegi ideyalar haqıyqıy kompyuter kodına aylanadı. Eger qurılıs injeneriyasında imarattı qurıw procesi sızılmalar tiykarında gerbish óriw hám beton quyıwdı ańlatsa, programmalıq injeneriyada bul – algoritmlerdi jazıw hám maǵlıwmatlar strukturasın jaratıwdı ańlatadı. Bul basqıshtıń nátiyjesi – paydalanıwshıǵa usınılatuǵın tayın programmalıq ónim bolıp tabıladı. Konstrukciyalawdıń áhmiyeti sonda, ol programmanıń sapasına tikkeley tásir etedi. Proektlestiriw qanshelli jaqsı bolmasın, eger konstrukciyalaw (kod jazıw) sapasız bolsa, nátiyje qanaatlandırarsız boladı. Kerisinshe, geyde ortasha proektlestiriwdi de joqarı sapalı konstrukciyalaw arqalı jaqsılawǵa boladı (biraq bul qıyın process). Konstrukciyalaw basqıshında jiberilgen qáteler, keyingi basqıshlarda (testlew hám ekspluataciya) tabılsa, olardı dúzetiw qımbatqa túsedi.

Sol sebepli, konstrukciyalaw – bul tek texnikalıq process emes, al injenerlik juwapkershilikti talap etetuǵın process.

Bul pánniń atamasındaǵı "Evolyuciya" sózi de biykarǵa qosılmaǵan. Programmalıq támiynat bir ret jazılıp, sol boyı ózgermeytuǵın nárse emes. Ol paydalanıw dawamında jańalanadı, keńeytiledi hám ózgeredi. Programmanıń keleshektegi evolyuciyası (rawajlanıwı) onıń dáslepki konstrukciyalanıw sapasına baylanıslı. Eger kod dáslep "taza" (clean code), túsinikli hám standartlarǵa say jazılǵan bolsa, onı keleshekte jańalaw ańsat boladı. Eger "spagetti kod" usılında jazılǵan bolsa, bunday programmanıń evolyuciyası toqtap, ol "óli" proektke aylanadı.

Konstrukciyalawdıń tiykarǵı operaciyaları

Konstrukciyalaw procesi bir neshe tiykarǵı is-háreketlerden quraladı. Birinshisi – bul "Kodlaw" (Coding). Bul basqıshta programmist tańlanǵan programmalastırıw tilinde (Java, C++, Python hám t.b.) algoritmlerdi hám logikanı jazadı. Kodlaw procesinde sintaksislik qaǵıydalarǵa ámel etiw, ózgeriwshilerdi durıs ataw hám kodtı oqıwǵa qolaylı etip jazıw (formatting) talap etiledi. Kodlaw – bul dóretiwshilik process bolıp, programmistten logikalıq pikirlewdi hám máselelerdi sheshiw qábiletin talap etedi.

Ekinshi áhmiyetli operaciya – bul "Tekseriw" (Verification) hám "Birlik testlew" (Unit Testing). Programmist jazǵan kodınıń durıs isleytuǵınına isenim payda etiwi ushın onı tekseriwi kerek. Birlik testlew – bul programmanıń eń kishi bóleklerin (funkciyalar, klasslar) izolyaciyada testlew procesi. Bul jumıs kóbinese kod jazıw menen parallel túrde alıp barıladı. Zamanagóy metodologiyalarda (mısalı, TDD - Test Driven Development) kodtan aldın test jazıw ámeliyatı qollanıladı. Bul konstrukciyalaw sapasın arttırıwǵa xızmet etedi.

Úshinshi operaciya – bul "Ońlaw" (Debugging). Kod jazılǵannan keyin hám testlengennen keyin, ádette qáteler (bug) tabıladı. Ońlaw – bul qáteniń sebebin tabıw hám onı dúzetiw procesi. Ońlaw konstrukciyalawdıń ajıralmas bólegi, sebebi qátesiz kod jazıw derlik múmkin emes. Tájiriybeli injenerler ońlaw procesine konstrukciyalaw waqtınıń úlken bólegin jumsaydı. Ońlaw quralların (debugger) effektiv qollana biliw – konstrukciyalawdıń sapalı bolıwınıń gilti.

Tórtinshi operaciya – bul "Integraciya" (Integration). Ádette programmalıq támiynat kóp sanlı modullerden, klasslardan hám kitapxanalardan turadı. Bul bóleklerdiń hárbiri ayırım jaqsı islewi múmkin, biraq olar bir-biri menen birikken waqıtta qáteler shıǵıwı itimal. Integraciya procesi – bul bólek jazılǵan komponentlerdi birlestiriw hám olardıń bir pútin sistema retinde islewin

támiyinlew. Konstrukciyalaw basqıshında "úziliksiz integraciya" (CI - Continuous Integration) usılları qollanılıp, hár bir ózgeris sistemaǵa avtomat túrde qosılıp barıladı.

Quramalılıqtı basqarıw

Programmalıq támiynattı konstrukciyalawdaǵı eń úlken qıyınshılıq – bul "Quramalılıq" (Complexity). Zamanagóy programmalar millionlaǵan qatar kodtan turıwı múmkin. Insan miyi bunday úlken kólemdegi maǵlıwmattı bir waqıtta tolıq qamtıp ala almaydı. Sol sebepli, konstrukciyalawdıń tiykarǵı wazıypası – quramalılıqtı basqarıw bolıp tabıladı. Fred Bruks óziniń ataqlı maqalasında aytqanınday, programmalıq injeneriyada "gúmis oq" (quramalılıqtı joytatuǵın sıyqırlı qural) joq, biraq onı basqarıw usılları bar. Quramalılıqtı basqarıwdıń eń tiykarǵı quralı – bul "Abstrakciya". Abstrakciya – bul nárselerdiń ekinshi dárejeli detalların jasırıp, tek eń áhmiyetli qásiyetlerine itibar qaratıw. Mısalı, biz avtomobildi aydaw ushın dvigateldiń ishki dúzilisin biliwimiz shárt emes, bizge rul hám pedallar (interfeys) jetkilikli. Konstrukciyalawda da tap sonday: biz quramalı kodtı funkciyalarǵa, klasslarǵa hám modullerge bólemiz. Hár bir modul "qara qutı" sıyaqlı islep, ishki realizaciyasın jasırıp, sırtqa ápiwayı interfeys usınadı.

Ekinshi qural – bul "Standartlar hám kelisimler". Konstrukciyalaw procesinde kod jazıw stili (naming conventions), indentaciya (sheginiw) hám proektlestiriw úlgileri (design patterns) boyınsha ulıwma qaǵıydalar qollanıladı. Bul basqa programmistlerdiń kodtı oqıwın hám túsiniwin ańsatlastıradı. Eger hár kim óz bilgeninshe kod jazsa, proekt basqarılmaytuǵın xaostı payda etedi. Kodtıń oqılıwı (readability) kompyuter ushın emes, al adamlar ushın zárúr, sebebi kodtı kompyuter orınlaydı, biraq onı adamlar ońlaydı hám rawajlandıradı.

Úshinshi qural – bul "Qurallar hám Avtomatlastırıw". Zamanagóy konstrukciyalaw IDE (Integrated Development Environment - Integraciyalasqan islep shıǵıw ortalıǵı), versiyalardı qadaǵalaw sistemaları (Git) hám statikalıq analizatorlar sıyaqlı kúshli qurallarsız múmkin emes. Bul qurallar programmistke sintaksislik qátelerdi tez tabıwǵa, kodtı refactoring (qayta qurıw) qılıwǵa hám komanda bolıp islesiwge járdem beredi. Qurallar quramalılıqtıń bir bólegin óz moynına alıp, injenerdiń intellektual miynetine kóbirek waqıt ajıratıwına imkaniyat jaratadı.

Programmalıq támiynat evolyuciyası menen baylanısı

Konstrukciyalaw procesi tamamlanǵannan keyin, programmalıq támiynat "paydalanıw" hám "xızmet kórsetiw" (maintenance) basqıshına ótedi. Biraq bul onıń ómiri tawsıldı degen sóz emes. Programmalıq támiynat – bul dinamikalıq sistema, ol sırtqı ortalıq, paydalanıwshı talapları hám texnologiyalardıń ózgeriwi menen birge ózgerip turıwı kerek. Bul processti "Programmalıq támiynat evolyuciyası" dep ataymız. Evolyuciya – bul programmanıń tirishilik qábiletin saqlap qalıw ushın onıń úziliksiz jańalanıwı. Konstrukciyalaw hám evolyuciya arasında tikkeley baylanıs bar. Eger konstrukciyalaw basqıshında "texnikalıq qarız" (technical debt) jıynalıp qalsa, yaǵnıy tez pitiriw ushın sapasız kod jazılǵan bolsa, evolyuciya procesi qıyınlasadı. Hár bir jańa ózgeris kirgiziw burınǵıdan da qıyınraq boladı, sebebi kodtıń strukturası buzılǵan boladı. Sol sebepli, konstrukciyalawda "Refactoring" (kodtıń sırtqı minez-qulqın ózgertpesten, ishki strukturasın jaqsılaw) ámeliyatı turaqlı qollanılıwı kerek.

Sapasız konstrukciyalawdıń aqıbeti – bul "Software Entropy" (Programmalıq entropiya) yamasa kodtıń "shiriwi". Fizikada termodinamikanıń ekinshi nızamı boyınsha tártipsizlik (entropiya) waqıt ótiwi menen artıp baradı. Programmalıq támiynatta da sonday: eger biz kodtı turaqlı túrde tazalap, tártipke keltirip turmasaq, ol basqarıp bolmaytuǵın jaǵdayǵa jetedi. Konstrukciyalaw – bul entropiyaǵa qarsı gúresiw procesi. Jaqsı injener tek "isleytuǵın" kod jazbaydı, ol "jasaytuǵın" (maintainable) kod jazadı.

Juwmaqlap aytqanda, "Programmalıq támiynat qurılması hám evolyuciyası" páni sizdi tek kod jazıwǵa emes, al "Programmalıq injener" retinde oylawǵa úyretedi. Siz kodtıń tek búgingi kún ushın emes, al keleshek ushın da xızmet etiwin támiyinlewshi usıllardı úyrenesiz. Konstrukciyalaw – bul ilim menen kórkem ónerdiń birigiwi. Ol algoritmlerdiń matematikalıq anıqlıǵın hám arxitekturanıń estetikalıq sulıwlıǵın talap etedi. Bul pán arqalı siz professional programmalastırıw álemine kirip barasız.

BAQLAW SORAWLARÍ:

1.Programmalıq támiynattı konstrukciyalaw procesine anıqlama beriń hám onıń quramına qanday operaciyalar kiredi?

2.SWEBOK standartı boyınsha konstrukciyalawdıń programmalıq támiynat ómirlik ciklindegi ornı qanday?

3.Programmalıq támiynattaǵı "Quramalılıq" (Complexity) túsinigi ne hám onı basqarıwdıń tiykarǵı usılı qanday?

4.Konstrukciyalaw sapası programmalıq támiynattıń keyingi evolyuciyasına qalay tásir etedi?

5.Birlik testlew (Unit Testing) hám Ońlaw (Debugging) processleriniń ayırmashılıǵı nede?

Соседние файлы в папке Programmalıq támiynat qurılması hám evolyuciyası