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

3-lekciya. Programmalıq támiynat dizaynı hám arxitektura túsinikleri.

Jobası:

1.Programmalıq támiynat dizaynı hám arxitekturasınıń tiykarǵı túsinikleri

2.Programmalıq támiynat dizaynınıń principleri hám metodları

3.Programmalıq támiynat arxitekturasınıń stilleri hám modelleri

4.Programmalıq támiynat dizaynı hám arxitekturasın jobalastırıw processi

1. Programmalıq támiynat dizaynı hám arxitekturasınıń tiykarǵı túsinikleri.

Programmalıq támiynat arxitekturası – programmalıq sistemanıń fundamental strukturasın, onıń komponentlerin, olardıń óz-ara baylanısların hám sırtqı ortalıq penen qarım-qatnasın anıqlaytuǵın process hám nátiyje bolıp tabıladı. Programmalıq támiynat arxitekturası – búgingi kúni zamanagóy informaciyalıq texnologiyalar tarawındaǵı eń áhmiyetli máselelerdiń biri. Ol programmalıq ónimniń jumıs iseniwi, keńeyiwi, masshtablanıwı hám qollaw múmkinshiliklerine tikkeley tásir etedi. Durıs jobalanǵan arxitektura programmalıq támiynattıń barlıq funkcionallıǵın optimal túrde ámelge asırıwǵa múmkinshilik beredi.

Programmalıq támiynat dizaynı – bul programmanı islep shıǵıwdıń texnikalıq procesi, yaǵnıy talaplardı qanaatlandıratuǵın programmalıq ónimdi jasaw boyınsha sheshimler qabıl etiw procesi. Dizayn procesi programmalıq támiynattıń ishki strukturasın hám jumısın anıqlaydı, funkciyalar hám klasslardı jobalawdı óz ishine aladı. Dizayn hám arxitektura óz-ara tıǵız baylanısqan, biraq arxitektura joqarǵı dárejedegi strategiyalıq sheshimlerdi qabıl etiwge, al dizayn bolsa implementaciya dárejesindegi taktikalıq sheshimlerge kóbirek baylanıslı.

Programmalıq támiynat arxitekturasınıń tiykarǵı túsinikleri hám principleri arasında: modullik (sistemanı funkcional bloklarǵa bóliw), inkapsulyaciya (sistema komponentleriniń ishki háreketlerin onıń sırtqı interfeysinen ajıratıw), abstrakciya (quramalılıqtı basqarıw ushın áhmiyetli emes detallardı jasırıw), tek bir juwapkershilik (hárbir komponent tek bir funkcional aspekt ushın juwap beredi) hám ajıratıw (komponentlerdiń ózgermeytuǵın baylanıslar menen baylanıspawı) sıyaqlı túsinikler bar. Bul principler bir-birin tolıqtıradı hám jaqsı strukturalanǵan, tártipli hám qollawǵa ańsat programmalıq támiynattı jaratıwǵa járdem beredi.

Arxitekturalıq shablonlar (design patterns) – bul qaytalanatuǵın programmalıq máselelerdi sheshiwdiń standartlasqan usılları. Olar programma islep shıǵıwshılarǵa programmalıq támiynattı dizaynlaw hám qurılısın jobalawda járdem beredi. MVC (Model-View-Controller), mikroservisler, qatlamlı arxitektura, servis-baǵdarlamalı arxitektura (SOA) hám t.b. qánigeler tárepinen keńnen qollanılıp kiyatırǵan arxitekturalıq shablonlar bolıp tabıladı. Ádewir úlken

programmalıq támiynat jobalarında mıńlaǵan komponentler hám olardıń óz-ara baylanısları bolıwı múmkin, sonıń ushın arxitekturalıq shablonlardı qollaw programmalıq támiynattı islep shıǵıwdı ádewir jeńillestiredi hám onıń sapasın arttıradı.

2. Programmalıq támiynat dizaynınıń principleri hám metodları

Programmalıq támiynat dizaynınıń principleri – bul programmalıq ónimlerdi jobalawdıń fundamental qaǵıydaları, olar sapalı, turaqlı hám keńeytiliwi múmkin bolǵan sistemalardı qurıw ushın qollanıladı. Bul principlerdiń eń áhmiyetlileri bolıp SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) principleri esaplanadı. Single Responsibility principi boyınsha hár bir klass tek bir juwapkershilikke iye bolıwı kerek. OpenClosed principi boyınsha klasslar keńeytiriwge ashıq, biraq modifikaciyaǵa jabıq bolıwı kerek. Liskov Substitution principi boyınsha bazalıq klasstıń ornın onıń miyrasxorları hesh qanday qáteliksiz almastıra alıwı kerek. Interface Segregation principi boyınsha interfeysler maydalanǵan hám klient-specifikalıq bolıwı kerek. Dependency Inversion principi boyınsha joqarı dárejeli moduller tómengi dárejeli modullerge ǵárezli bolmawı kerek.

Dizayn úlgileri (Design Patterns) – bul programmalıq támiynattı islep shıǵıwda jiyi ushırasatuǵın máseleler ushın qayta-qayta qollanılatuǵın sheshimler. Olar programma islep shıǵıwshılarǵa qolaylı hám tekserilgen sheshimlerdi qollanıwǵa múmkinshilik beredi. Dizayn úlgileri úsh kategoriyaǵa bólinedi: jaratıwshı (creational), strukturalıq (structural) hám háreket (behavioral) úlgileri. Jaratıwshı úlgiler obektlerdiń jaratılıw processin abstrakciyalaydı (Factory Method, Abstract Factory, Singleton, Builder, Prototype). Strukturalıq úlgiler obektler menen klasslardıń qurılısın sheshedi (Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy). Háreket úlgileri obektler arasındaǵı kommunikaciyanı, juwapkershiliklerdiń bólistiriliwin hám algoritmlerdiń strukturasın anıqlaydı

(Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor).

Programmalıq támiynat dizaynında qollanılatuǵın metodlardıń arasında

Object-Oriented Design (OOD), Structured Design, Component-Based Design hám Service-Oriented Design ayrıqsha orın iyeleydi. Object-Oriented Design – bul programmalıq támiynattı klasslar hám obektler túrinde bóleklerge ajıratıw metodı, ol inkapsulyaciya, polimorfizm hám miyras alıw sıyaqlı principlerge tiykarlanǵan. Structured Design – bul programmanı bloklar hám modullerge bóliw arqalı quramalılıqtı basqarıw metodı. Component-Based Design – bul sistemanı óz aldına jumıs isley alatuǵın, qayta qollanıwǵa bolatuǵın komponentlerden qurıw metodı. Service-Oriented Design – bul programmalıq funkciyalardı standartlasqan

interfeysler arqalı servisler sıpatında usınıw metodı, ol mikroservisler arxitekturasınıń tiykarında bolıp esaplanadı.

Programmalıq támiynat dizaynında qollanılatuǵın áhmiyetli koncepciyalardıń biri modullik bolıp tabıladı, ol programmanı funkcional jaqtan baylanısqan komponentlerge bóliw arqalı quramalılıqtı basqarıwǵa hám ózgerislerdi lokalizaciyalawǵa múmkinshilik beredi. Abstraction (abstrakciya) – bul quramalı sistemanı onıń eń áhmiyetli aspektlerine fokuslanıp, detallardı jasırıw arqalı túsiniwdi jeńillestiriw. Information hiding (informaciyanı jasırıw) – bul komponentlerdiń ishki detalların jasırıp, olardıń tek anıq belgilengen interfeysler arqalı baylanısıwına múmkinshilik beriw. Encapsulation (inkapsulyaciya) – bul malıwmatlar menen olardı qayta isleytuǵın metodlardı birgelikte obekt yamasa klass ishinde gruppalaw. Bul principler hám koncepciyalar programmalıq támiynattı dizaynlawda qollanılǵanda, jaqsı strukturalanǵan, tártipli hám uzaq múddetli qollawǵa ılayıqlı bolǵan programmalıq sistemalar jaratıladı.

3. Programmalıq támiynat arxitekturasınıń stilleri hám modelleri

Programmalıq támiynat arxitekturasınıń stilleri – bul programmalıq sistemalardı jobalawdıń joqarı dárejedegi shablonları bolıp, olar komponentlerdiń tiplerin, olardıń jaylasıwın, óz-ara tásirlesiw mexanizmlerin hám qollanılatuǵın strategiyalıq sheshimlerdi anıqlaydı. Monolit arxitektura – eń ápiwayı hám dástúrli arxitekturalıq stil, onda programmalıq támiynat bir pútin birlik retinde jobalanadı, qurıladı hám ornalastırıladı. Qatlamlı arxitektura (Layered Architecture) – programmanı funkcional qatlamlarǵa bóliwge tiykarlanǵan stil, mısalı, kórsetiw (presentation), biznes-logika, malıwmatlarǵa kiriw (data access) qatlamları, bunda hár bir qatlam tek ózinen tómendegi qatlamlar menen tikkeley baylanısa aladı. Mikroservis arxitekturası – programmanı óz aldına jumıs isley alatuǵın, bir-birinen ǵárezsiz, hár biri óz malıwmatlar qorına iye bolǵan kishkene servislerge bóliwge tiykarlanǵan stil. Bul stiller hár bir sistemanıń ózine tán talaplarına ılayıq optimal sheshim tabıwǵa múmkinshilik beredi.

Serviske-baǵdarlanǵan arxitektura (Service-Oriented Architecture, SOA) – bul servislerdiń óz-ara tásir etiwin standartlasqan protokollar arqalı ámelge asırıwǵa tiykarlanǵan arxitekturalıq stil. SOA-da servisler funkcionallıqtı standartlasqan interfeysler arqalı támiynleydi, bul olardı birneshe hár qıylı qollanıwlarda qayta paydalanıwǵa múmkinshilik beredi. Waqıyaǵa-baǵdarlanǵan arxitektura (Event-Driven Architecture, EDA) – sistemanıń waqıyalar bazasında qurılıwı menen sıpatlanadı, onda komponentler arasındaǵı baylanıs waqıyalardı tarqatıw hám olar menen islew arqalı ámelge asırıladı. Modulge-baǵdarlanǵan arxitektura (Component-Based Architecture) – bul programmanı óz aldına jumıs isley alatuǵın, qayta qollanılatuǵın modullerge bóliw arqalı qurıwǵa tiykarlanǵan

stil. Hár bir modul anıq belgilengen funkcionallıqqa iye bolıp, basqa moduller menen belgili interfeysler arqalı tásirlesedi.

Programmalıq támiynat arxitekturasınıń eń ataqlı hám keń tarqalǵan modellerine: Model-View-Controller (MVC), Model-View-ViewModel (MVVM), hám Model-View-Presenter (MVP) kiredi. MVC modelinde programma úsh komponentke bólinedi: Model (malıwmatlar strukturası hám biznes-logikanı saqlaydı), View (paydalanıwshı interfeysin kórsetedi), hám Controller (paydalanıwshı kirgizgen malıwmatlardı qabıl etip, modelge beriletuǵın komandalarǵa aylandıradı). MVVM modelinde ViewModel komponenti View hám Model arasındaǵı baylanıstırıwshı retinde xızmet etedi, View-ge maǵlıwmatlardı kórsetiw ushın kerekli formada beredi. MVP modelinde Presenter komponenti

View hám Model arasındaǵı barlıq tásirlesiwlerdi basqaradı. Bul modeller programmanıń strukturasın jaqsı shólkemlestiriwge, kodtıń qayta qollanılıwın arttırıwǵa hám testlewdi jeńillestiriwge múmkinshilik beredi.

Zamanagóy programmalıq arxitekturalarda Kubernetes hám konteynerlewge tiykarlanǵan Cloud-Native arxitekturalar, Function-as-a-Service (FaaS) sıyaqlı serversiz (serverless) arxitekturalar, hám Mesh arxitekturası sıyaqlı jańa stiller payda bolmaqta. Cloud-Native arxitekturalar programmalıq támiynattıń bult ortalıǵında jumıs islewge optimallastırılǵanın támiynleydi, al serversiz arxitekturalar funkciyalardı avtomatlasqan túrde masshtablaw hám basqarıw múmkinshiligin beredi. Mesh arxitekturası tarmaqlanǵan sistemalardaǵı xızmetler arasındaǵı qarım-qatnastı basqarıwǵa arnalǵan. Sonıń menen bir qatarda, mikrofrontendler, JAMstack (JavaScript, API hám Markup) hám basqa da zamanagóy arxitekturalıq sheshimler payda bolmaqta. Programmalıq támiynat dizaynerleri hám arxitektorları usı stiller hám modellerdiń artıqmashılıqları menen kemshiliklerin bilip, konkret situaciyalarǵa sáykes keletuǵın sheshimlerdi tańlay alıwı kerek.

4. Programmalıq támiynat dizaynı hám arxitekturasın jobalastırıw processi.

Programmalıq támiynat dizaynı hám arxitekturasın jobalastırıw processi – bul programmalıq támiynattıń strukturasın, komponentlerin hám óz-ara baylanısların anıqlawdıń sistemalı jolı. Bul process ádette talaplar analizi menen baslanadı, onda funkcional hám funkcional emes talaplar (masshtablanıw,

ónimlilik, qáwipsizlik, paydalanıw qolaylılıǵı hám t.b.) anıqlanadı. Talaplar analizinen soń, ádette sistemanıń kontekstin (onıń sırtqı dúnya menen óz-ara tásirlesiwin) anıqlaw ushın konteksttik diagrammalar jaratıladı. Bunnan keyin, arxitektor sistemanı komponentlerge bóliw, olardıń arasındaǵı interfeyslerdi anıqlaw hám olardıń óz-ara tásirlesiw modelin jobalaw boyınsha arxitekturalıq

sheshimler qabıl etedi. Bul process barısında, arxitekturalıq stiller, úlgiler hám principler qollanılıp, tiykarǵı arxitekturalıq táwekeller hám sheklewler identifikaciyalanadı.

Jobalastırıw processi arxitekturalıq kóriniwlerdi (views) jobalawdı óz ishine aladı, mısalı, logikalıq kóriniw (sistema qanday komponentlerden turatuǵının kórsetedi), process kóriniwi (jumıs waqtındaǵı komponentlerdiń bir-biri menen qalay tásirlesetuǵının kórsetedi), fizikalıq kóriniw (sistemanıń fizikalıq qurılmalarǵa qalay jaylastırılatuǵının kórsetedi) hám baǵdarlama islenbesi kóriniwi (programma islep shıǵıwshılardıń sistemanı qalay qurıwı hám jaylastırıwı kerek ekenligin kórsetedi) sıyaqlı kóriniwlerdi jaratıwdı talap etedi. Arxitektor bunnan tısqarı, sistemanı tábiyiy modullerge ajıratıw, sistemadaǵı malıwmatlardıń aǵımın hám kontroldiń qalay ámelge asırılatuǵının anıqlaw, infrastrukturalıq komponentlerdi tańlaw (máselen, freymvorklar, instrumentler hám texnologiyalar) hám olardı qalay integraciyalaw kerek ekenligin sheshedi.

Programmalıq támiynat dizaynı hám arxitekturasın jobalastırıw processiniń áhmiyetli adımı – bul arxitekturalıq sheshimlerdi validaciya hám verifikaciya etiw. Bul prototiplew, arxitekturalıq sholıwlar hám talqılawlar, scenariyge-tiykarlanǵan bahalaw (ATAM yamasa SAAM sıyaqlı metodlar arqalı), imitaciyalıq modellew hám basqa da texnikalar arqalı ámelge asırılıwı múmkin. Bul adım arxitekturanıń talaplarǵa sáykes keliwin tekseriw hám potencial máselelerdi erterek anıqlaw ushın júdá áhmiyetli. Arxitekturalıq sheshimlerdi verifikaciyalaw barısında, ádette, sistemanıń ónimliligi, masshtablanıwı, ózgerislerge beyimlesiwi, qáwipsizligi hám iseniwliligi sıyaqlı funkcional emes talaplarǵa ayrıqsha itibar qaratıladı. Bul talaplardı qanaatlandırıw ushın ne Performance Modeling, Security Threat Modeling, Reliability Engineering sıyaqlı hár qıylı metodlar hám instrumentler qollanıladı.

Arxitekturalıq sheshimlerdi dokumentlestiriw – jobalastırıw processiniń ajıralmas bólegi bolıp, ol barlıq múddelli tárepler (steykxolderler) arasında jaqsı túsiniwshilikti támiynlew ushın áhmiyetli. Dokumentaciya arxitekturalıq kóriniwlerdi, sistemanıń komponentlerin hám olardıń óz-ara baylanısların, qabıl etilgen sheshimlerdiń tiykarların, qarastırılǵan alternativalar hám arxitekturalıq tańlawlardıń aqıbetlerin óz ishine alıwı kerek. UML (Unified Modeling Language) diagrammaları, C4 modeli, ArchiMate sıyaqlı standartlasqan notaciyalar hám tiller dokumentaciyanı strukturalaw hám vizualizaciyalaw ushın qollanılıwı múmkin. Zamanagóy programmalıq támiynat islep shıǵıw metodları Agile hám DevOps texnologiyalarına qarap ketip baratırǵanlıqtan, arxitekturalıq jobalastırıw processi de iterativlik hám evolyuciyalıq xarakterge iye bolıp barmaqta. Bul jaǵdayda, dokumentaciya da úziliksiz aktualizaciyalanıp, evolyuciyalanıp barıwı kerek, hám tek arxitekturanıń haqıyqıy jaǵdayın sáwlelendiriw kerek.

BAQLAW SORAWLARÍ:

1.Programmalıq támiynat arxitekturası degenimiz ne hám onıń tiykarǵı elementleri qanday?

2.Programmalıq támiynat dizaynı hám arxitekturasınıń arasındaǵı ayırmashılıq qanday?

3.Programmalıq támiynat arxitekturasınıń tiykarǵı principlerin atap ótiń, olarǵa qısqasha túsinik beriń.

4.Arxitekturalıq shablonlar qanday maqsette qollanıladı hám olarǵa qanday mısallar kiredi?

5.SOLID principleriniń áhmiyeti qanday hám olarǵa qısqasha túsinik beriń.

6.Programmalıq támiynat dizaynında qollanılatuǵın metodlar qanday hám olarǵa táriyip beriń.

7.Dizayn úlgileri qanday túrlerge bólinedi hám olar qanday máselelerdi sheshedi?

8.Mikroservis arxitekturasınıń monolit arxitekturadan qanday artıqmashılıqları bar?

9.Programmalıq támiynat arxitekturasınıń keń tarqalǵan stilleri qanday?

10.Model-View-Controller (MVC) modeli qanday principler menen isleydi?

11.Serviske-baǵdarlanǵan arxitektura (SOA) qanday ózgeshelikterge iye?

12.Programmalıq támiynat dizaynı hám arxitekturasın jobalastırıw processiniń tiykarǵı basqıshları qanday?

13.Programmalıq támiynat arxitekturasın hújjetlestiriw qanday maqsette qollanıladı?

14.Agile hám DevOps texnologiyaları arxitekturalıq jobalastırıwǵa qanday tásir etedi?

15.UML diagrammaları hám C4 modeli qanday maqsette qollanıladı?

Соседние файлы в предмете Архитектура вычислительный машин и систем