
4-lekciya PT-A
.pdf4-lekciya. Programmalıq támiynattı modellestiriw hám proektlestiriw usıllarınıń ulıwma túsinikleri. Modellestiriw túrlerinen paydalanıw.
Jobası:
1.Programmalıq támiynattı modellestiriw túsinigi hám áhmiyeti
2.Programmalıq támiynattı modellestiriw túrleri
3.Programmalıq támiynattı proektlestiriw usılları
1. Programmalıq támiynattı modellestiriw túsinigi hám áhmiyeti.
Programmalıq támiynattı modellestiriw – bul haqıyqıy sistemanıń abstrakciyaların jaratıw hám olardı grafikalıq yamasa tekstlik formada kórsetiw processi bolıp tabıladı. Modellestiriw programmalıq támiynattıń jaratılıwınıń barlıq basqıshlarında qollanıladı: talaplardı analizlew, dizayn, implementaciya hám testlew. Modeller programmalıq támiynattıń strukturasın, háreketin hám maqsetin túsiniwdi ańsatlastıradı, hám quramalı sistemalar haqqında oylawǵa járdem beretuǵın kórnekli qurallardı támiynleydi. Programmalıq támiynattı modellestiriw sistemanıń áhmiyetli aspektlerine fokuslanıw hám detallardı abstrakciyalaw múmkinshiligin beredi, bul arqalı joba qatnasıwshıları arasında kommunikaciyanı jaqsartadı hám quramalı sistemalardı basqarıw processin jeńillestiredi.
Programmalıq támiynattı modellestiriwdiń bir neshe túrleri bar, sonıń ishinde strukturalıq modellestiriw (programmanıń statikalıq strukturasın kórsetedi), háreketlik modellestiriw (programmalıq támiynattıń dinamikalıq háreketin hám ózara tásirlesiwlerin súwretleydi) hám domenlik modellestiriw (predmetlik oblasttıń túsiniklerin hám olardıń arasındaǵı qatnaslardı vizualizaciyalaydı). Modellestiriw ushın kóp sanlı tiller hám notaciyalar qollanıladı, máselen, UML (Unified Modeling Language) – eń keń tarqalǵan standartlasqan modellestiriw tili, ol 14 túrli diagramma tipin qollaydı. Basqa da qollanılatuǵın notaciyalarǵa BPMN
(Business Process Model and Notation), C4 modeli, ERD (Entity-Relationship
Diagrams), DFD (Data Flow Diagrams) hám ArchiMate kiredi. Hár bir modellestiriw tili hám notaciya óziniń kúshli táreplerine iye hám belgili maqsetler ushın paydalanıladı.
Programmalıq támiynattı modellestiriwdiń áhmiyeti onıń kóp sanlı artıqmashılıqlarında kórinedi. Birinshi, modeller quramalı sistemanı vizualizaciyalap, steykxolderler (mápli tárepler) arasında ulıwma túsiniwshilikti támiynleydi. Ekinshi, modeller detallı implementaciyaǵa ketpesten, sistemanıń konceptual dizaynın izertlewge hám bahalawǵa múmkinshilik beredi. Úshinshi, modeller sistemanıń potencial problemaların erte anıqlawǵa járdem beredi, bul qátelerdi dúzetiw hám sistemanı qayta jobalawǵa ketetuǵın waqıt hám resurslardı saqlaydı. Tórtinshi, modeller sistemanıń qalay isleytuǵını haqqında belgili bir
dárejedegi dokumentaciya retinde xızmet etip, jańa komanda aǵzalarınıń sistemanı túsiniwin ańsatlastıradı. Besinshi, modellestiriwdi avtomatlasqan túrde kodqa generaciyalaw yamasa kodtan modellerdi rekonstrukciyalaw (reverse engineering) ushın jumıs processiniń bir bólegi sıpatında qollanıwǵa boladı.
Zamanagóy programmalıq támiynattı islep shıǵıwdaǵı qanday dáwirler hám metodlar qollanılmasın, modellestiriw aldın-ala jobalastırıw yamasa dokumentaciyadan kóbirek áhmiyetke iye. Modeller programmalıq támiynattı islep shıǵıw processiniń ajıralmas bólegi sıpatında, sistemanıń ómirlik cikli barısında dizayn sheshimleri, ózgerisler hám evolyuciyanı kórsetiwi kerek. Domain-Driven Design (DDD) metodologiyası sıyaqlı zamanagóy metodlar, modellerdi dizayn hám implementaciya arasındaǵı qashıqlıqtı joq etiw hám sistemanıń domenlik logikasın negizgi fokus sıpatında saqlaw ushın qollanadı. Model-Driven Engineering (MDE) hám Model-Driven Architecture (MDA) sıyaqlı metodlar bolsa, modellerdi programmalıq támiynat islep shıǵıwdıń oraylıq artefaktları sıpatında qollanıp, kóbinese avtomatlasqan kodtı generaciyalaw hám transformaciyalar arqalı implementaciyanı avtomatizaciyalawǵa urınadı. Juwmaqlap aytqanda, programmalıq támiynattı modellestiriw – bul programmalıq sistemalardı túsiniw, jobalastırıw, implementaciyalaw hám evolyuciyalaw ushın áhmiyetli qural.
2. Programmalıq támiynattı modellestiriw túrleri.
Programmalıq támiynattı modellestiriwdiń tiykarǵı túrleri bolıp strukturalıq, háreketlik, arxitekturalıq hám domenlik modellestiriw esaplanadı. Strukturalıq modellestiriw – bul programmalıq támiynattıń statikalıq qurılısın hám onıń komponentleri arasındaǵı qatnaslardı kórsetedi. Oǵan klass diagrammaları, komponent diagrammaları, obekt diagrammaları hám paket diagrammaları kiredi. Klass diagramması – eń kóp qollanılatuǵın strukturalıq diagramma túri bolıp, ol sistemadaǵı klasslar, olardıń atributları hám metodları, hámde klasslar arasındaǵı baylanıslardı (miyras alıw, agregaciya, kompoziciya hám t.b.) súwretleydi. Strukturalıq modeller sistemanıń statikalıq kórinisin jaqsı kórsetedi, biraq onıń háreket dinamikasın ashıp bermeydi, sonıń ushın olardı ádette basqa model túrleri menen tolıqtırıw kerek.
Háreketlik modellestiriw – bul programmalıq sistemanıń dinamikalıq háreketin, waqıt boyınsha ózgeriwin hám komponentler arasındaǵı óz-ara tásirlesiw processlerin kórsetedi. Háreketlik modellestiriwge UML-daǵı háreket diagrammaları (activity diagrams), hal-jaǵday diagrammaları (state diagrams), izbe-izlikli diagrammalar (sequence diagrams), kommunikaciya diagrammaları, háreketke kirisiw diagrammaları (use case diagrams) kiredi. Háreket diagrammaları programmalıq támiynattıń biznes-processler hám algoritmler
formasındaǵı ishki logikasın kórsetedi. Izbe-izlikli diagrammalar komponentler arasındaǵı xabarlar almasıwdı xronologiyalıq izbe-izlikte kórsetip, sistemadaǵı obektlerdiń óz-ara háreketlesiw tártibin anıq kórsetiwge múmkinshilik beredi. Haljaǵday diagrammaları obekttiń yamasa sistemanıń hár túrli jaǵdayların hám jaǵdaylar arasındaǵı ótiwlerge sebep bolatuǵın waqıyalardı modellestiredi, obekttiń háreketin onıń tolıq ómirlik cikli barısında túsiniwge múmkinshilik beredi.
Arxitekturalıq modellestiriw – bul programmalıq sistemanıń joqarı dárejedegi komponentlerin hám olardıń óz-ara baylanısların kórsetiw ushın qollanıladı. Arxitekturalıq modellestiriwge elesletiwdiń hár qıylı kórinislerin (views) qollanıwdı óz ishine alatuǵın "4+1" kórinisler modeli, C4 modeli (Context, Containers, Components, Code) hám ArchiMate sıyaqlı notaciyalar kiredi. "4+1" modelinde tiykarǵı arxitekturalıq kórinisler bolıp logikalıq kóriniw (logical view), process kóriniwi (process view), fizikalıq kóriniw (physical view), islenbe kóriniwi (development view) esaplanadı, al olardı baylanıstırıwshı "+1" kóriniw bolıp háreketke kirisiw scenariyleri (use case view) esaplanadı. C4 modeli programmalıq támiynattı hár qıylı abstrakciya dárejelerinde kóriw múmkinshiligin beredi, yaǵnıy kontekst (ulıwma sistemanıń sırtqı dúnya menen óz-ara tásirlesiwi), konteynerler (joqarı dárejedegi texnologiyalıq sheshimler), komponentler (funkcional bólekler) hám kod (implementaciya detalları) dárejelerinde. Arxitekturalıq modeller, ásirese, úlken hám quramalı sistemalardı túsiniw hám jobalastırıw ushın áhmiyetli.
Domenlik modellestiriw – bul predmetlik oblasttıń túsiniklerin, olardıń atributların hám óz-ara qatnasların súwretleydi. Domenlik modellestiriwge EntityRelationship diagrammaları (ERD), domenlik klasslar diagrammaları, ontologiyalıq modeller hám Domain-Driven Design (DDD) ádisinde qollanılatuǵın domenlik modeller kiredi. Entity-Relationship diagrammaları malıwmatlar bazaların modellestiriw ushın keń qollanıladı, olar entitilerdi, olardıń atributların hám entitiler arasındaǵı qatnaslardı kórsetedi. Domain-Driven Design metodındaǵı domenlik modeller programmalıq támiynattıń domenlik logikasın modellestiriw ushın qollanıladı, olar Ubiquitous Language (barlıq steykxolderler ortasındaǵı ulıwma til) arqalı biznes hám texnikalıq komandalar arasındaǵı kommunikaciyanı jaqsartıwǵa múmkinshilik beredi, hámde modellerdi hám implementaciyanı úziliksiz óz-ara sáykes túrde saqlawǵa járdem beredi. Domenlik modellestiriw biznes-talaplarǵa sáykes keletuǵın hám predmetlik oblasttıń haqıyqatlıǵın durıs sáwlelendiretuǵın sistemalardı jobalastırıw ushın áhmiyetli.
3. Programmalıq támiynattı proektlestiriw usılları
Programmalıq támiynattı proektlestiriw usılları hár qıylı metodologiyalar, metodlar hám texnikalardı óz ishine alıp, olar programmalıq támiynattı joqarı sapalı, talaplarǵa juwap beretuǵın hám uzaq múddetli qollanıwǵa ılayıqlı etip islep
shıǵıwǵa múmkinshilik beredi. Dástúrli usıllardıń ishinde «suw quyǵısh» yamasa kaskadlı model (Waterfall model) eń ataqlı boldı, onda programmalıq támiynattı islep shıǵıw procesi anıq izbe-iz adımlardan turatuǵın process sıpatında qarastırıladı: talaplardı analizlew, dizayn, implementaciya, verifikaciya (testlew) hám texnikalıq xızmet kórsetiw. Hár bir adım aldıńǵı adımlar tamamlanǵannan soń baslanadı, bul usıl dizaynnıń anıq qurılısı hám dokumentaciya fokusı menen xarakterlenedi. Onnan keyingi evolyuciyada V-model, spirallı model hám iterativlik islenbe usılları payda boldı, olar qátelerdi erterek anıqlaw hám táwekellerdi basqarıwǵa úlken itibar qaratadı.
Zamanagóy programmalıq támiynattı proektlestiriw usılları ishinde Shaqqan (Agile) metodologiyalar keń tarqalǵan, olar Agile Manifesto principlerine tiykarlanadı: processler hám qurallarǵa qaraǵanda adamlar hám óz-ara tásirlesiwge kóbirek áhmiyet beriledi, hár tárepleme dokumentaciyaǵa qaraǵanda jumıs isleytuǵın programmalıq támiynatqa, shártnama boyınsha kelisimlerge qaraǵanda buyırtpa beriw menen birge islesiwge, jobaǵa ámel qılıwǵa qaraǵanda ózgerislerge juwap beriwge kóbirek áhmiyet beriledi. Agile metodologiyalardıń ishinde Scrum, Kanban, Extreme Programming (XP), Feature-Driven Development (FDD), hám Lean Software Development tanımal bolıp esaplanadı. Scrum-da jumıs 2-4 háptelik sprintlerge bólinedi, hár bir sprint jumıs isleytuǵın programmalıq támiynattıń jańa versiyasın jaratadı. Kanban bolsa, aǵımlı jumıstı vizualizaciyalawǵa, jumıs aǵımın optimizaciyalawǵa hám úziliksiz jaqsartıwǵa tiykarlanadı. Bul metodologiyalar, ásirese, tez ózgeriwshi talaplar, belgisizlik jaǵdaylarında yamasa innovaciyalıq jobalarda jaqsı jumıs isleydi.
Programmalıq támiynattı proektlestiriwdiń integraciyalıq usılları sistemanıń hár qıylı bóleklerin birgelikte islew ushın birlestiriwge múmkinshilik beredi.
Úziliksiz integraciya (Continuous Integration, CI) – bul avtomatlasqan process bolıp, onda programma islep shıǵıwshılar óz kodların úziliksiz túrde ulıwma kodlar bazasına integraciyalaydı, hám avtomatlasqan testler arqalı bul kodlardıń isenimliligi tekseriledi. Úziliksiz jetkeriw (Continuous Delivery, CD) bolsa, programmalıq támiynattı avtomatlasqan túrde testlew hám ornalastırıw processin támiynleydi, bul jańa ózgerislerdi tez hám isenimli túrde produkciyalıq ortalıqqa jetkeriwge múmkinshilik beredi. DevOps metodı – bul programma islep shıǵıw
(Development) hám operaciyalıq xızmetler (Operations) arasındaǵı qarımqatnaslardı jaqsılaw, processler menen qurallardı integraciyalaw arqalı programmalıq támiynattıń tez jetkeriliwin támiynleytuǵın metod. Bul integraciyalıq usıllar joqarı ónimlilik, tez iteraciyalar hám jaqsıraq sapa standartların qollawǵa kómeklesedi.
Domenge baǵdarlanǵan dizayn (Domain-Driven Design, DDD) hám mikroservislik arxitektura – bul zamanagóy programmalıq támiynat dizaynında
keń qollanılatuǵın usıllar bolıp tabıladı. DDD usılı predmetlik oblastqa tereń kontekst beriwge, domenlik modeldiń mazmun strukturasın jaratıwǵa hám biznesmánisiniń programmalıq támiynat ishinde anıq kórinetuǵınına tiykarlanadı. Bul usıl úlken hám quramalı biznes-domenlerdi sheklengen kontekst (bounded context) koncepciyası arqalı kishirek, óz-ara jaqsı anıqlanǵan kontekstlerge bóliw arqalı basqarıwǵa múmkinshilik beredi. Mikroservislik arxitektura – bul programmalıq sistemanı óz aldına jumıs isley alatuǵın, bir-birinen ǵárezsiz kishkene servislerge bóliw usılı. Hár bir mikroservis belgili bir biznes-funkciyanı ámelge asıradı hám óziniń malıwmatlar bazasına hám resurslarına iye boladı. Bul usıl úlken hám quramalı programmalıq sistemalardı masshtablanıwǵa hám tez ózgeriwge beyimlenetuǵın etip kóriwge múmkinshilik beredi. Zamanagóy programmalıq támiynattı proektlestiriw usıllarınıń áhmiyetli qásiyeti – olardıń úziliksiz ózgeriw hám jaqsılanıw múmkinshiligi, sebebi programma islep shıǵıwshılar jańa texnologiyalar, qurallar hám paradigmalardı izlep tabıwda dawam etpekte.
BAQLAW SORAWLARÍ
1.Programmalıq támiynattı modellestiriw neni bildiredi hám onıń áhmiyeti
qanday?
2.Programmalıq támiynattı modellestiriwdiń tiykarǵı basqıshları qanday?
3.UML qanday modellerdi qollap-quwatlaydı hám onıń qanday túrleri bar?
4.Programmalıq támiynattı modellestiriwdiń qanday túrleri bar?
5.Strukturalıq modellestiriw qanday diagrammalardı qamtıydı hám olar qanday maqsette qollanıladı?
6.Háreketlik modellestiriw qanday elementlerden turadı hám ol qanday másele sheshiwi múmkin?
7.Arxitekturalıq modellestiriw qanday stil hám metodikalardı qollanadı?
8.C4 modeli qanday dárejelerden turadı hám ol qanday maqsette qollanıladı?
9.Domain-Driven Design (DDD) metodı qanday principlerge tiykarlanadı?
10.Programmalıq támiynattı proektlestiriw usılları qanday hám olar qanday metodikalardı qamtıydı?
11.Waterfall modeliniń ózgeshelikleri qanday hám onıń kemshilikleri bar
ma?
12.Agile metodologiyasınıń tiykarǵı principleri qanday hám onıń qanday túrleri bar?
13.Úziliksiz integraciya (CI) hám úziliksiz jetkeriw (CD) qanday maqsette qollanıladı?
14.Mikroservis arxitekturasınıń artıqmashılıqları qanday?
15. Programmalıq támiynattı modellestiriw hám proektlestiriw usılları qanday qatnasqa iye?