# Programmalıq támiynattı islep shıǵıw

**Programmalıq támiynattı islep shıǵıw** (ingl. *software development*) ‒ bul paydalanıwshını qanaatlandırıw ushın programmalıq támiynat sheshimin proektlestiriw hám ámelge asırıw procesi. Bul process programmalastırıwdan, kod jazıwdan keńirek, sebebi ol maqsetti oylap tabıwdı, orınlanıw múmkinshiligin bahalawdı, talaplardı analizlewdi, dizayndı, testlewdi hám shıǵarıwdı óz ishine aladı. Bul process shólkemlestiriwshi basqarıw, proekt basqarıw, konfiguraciyanı basqarıw hám basqa da aspektlerdi óz ishine alatuǵın programmalıq injeneriyanıń bir bólegi bolıp tabıladı.

Programmalıq támiynattı islep shıǵıw programmalastırıw, testlew, hújjetlestiriw, grafikalıq dizayn, paydalanıwshılardı qollap-quwatlaw, marketing hám qarjı jıynaw sıyaqlı kóplegen kónlikpeler hám kásiplik qánigeliklerdi óz ishine aladı.

Programmalıq támiynattı islep shıǵıw kompilyator, integraciyalanǵan rawajlandırıw ortalıǵı (IDE), versiyanı basqarıw, kompyuter járdeminde programmalıq támiynat injeneriyası hám tekst processorı sıyaqlı kóplegen qurallardı óz ishine aladı.

Islep shıǵıw jumısı ushın qollanılatuǵın procestiń detalları ózgerip turadı. Process rásmiy, hújjetlestirilgen standartqa sheklengen bolıwı múmkin, yamasa islep shıǵıw jumısı ushın arnawlı túrde islep shıǵılǵan hám payda bolıp atırǵan bolıwı múmkin. Process izbe-iz bolıwı múmkin, bunda hárbir tiykarǵı basqısh (mısalı, proektlestiriw, ámelge asırıw hám testlew) keyingisi baslanbastan aldın tolıq pitkerilip boladı, biraq iteraciyalıq kózqaras - kishi aspektler óz aldına joybarlanıp, ámelge asırılıp hám testlenip barıladı - qáwip hám shıǵındı azaytıwı hám sapanı arttıra aladı.

## Metodologiyalar

Evolyuciyalıq prototiplew modeliniń aǵım diagramması, iteraciyalıq rawajlanıw modeli
Hárbir bar bolǵan metodologiya hár qıylı texnikalıq, shólkemlestiriwshilik, proekt hám komanda faktorlarına tiykarlanıp, belgili bir túrdegi proektler ushın eń qolaylı boladı.

* Eń ápiwayı metodologiya - "kodlaw hám dúzetiw", ádette kishi proekt ústinde islep atırǵan jalǵız baǵdarlamashı tárepinen qollanıladı. Baǵdarlamanıń maqsetin qısqasha qarap shıqqannan keyin, baǵdarlamashı onı kodlaydı hám isleytuǵının kóriw ushın iske túsiredi. Olar tamamlaǵannan keyin, ónim shıǵarıladı. Bul metodologiya prototipler ushın paydalı, biraq quramalıraq baǵdarlamalar ushın qollanıla almaydı.
* Joqarıdan tómenge qaray sarqırama modelinde orınlanıwshılıq, analiz, dizayn, programmalıq támiynattı islep shıǵıw, sapanı támiyinlew hám ámelge asırıw izbe-iz sol tártipte ámelge asırıladı. Bul model keyingi basqısh baslanbastan aldın aldıńǵı basqıshtıń tolıq tamamlanıwın talap etedi, bul keshigiwlerge alıp keledi hám zárúr bolǵan jaǵdayda aldıńǵı basqıshlardı qayta qarap shıǵıwdı múmkin emes etedi.
* Iteraciyalıq processlerde bul basqıshlar bir-biri menen aralasıp, iykemlilikti, nátiyjelilikti jaqsılaw hám realistik jobalawdı támiyinlew ushın qollanıladı. Proektti bir waqıtta tolıq pitkeriwdiń ornına, bir komponent penen bir waqıtta kópshilik basqıshlardan ótiwge boladı. Iteraciyalıq rawajlanıw jáne de baǵdarlamashılarǵa eń áhmiyetli ózgesheliklerge itibar qaratıwǵa múmkinshilik beredi, bul tómenirek áhmiyetke iye bolǵanların keyinirek zárúr bolsa alıp taslawǵa imkaniyat beredi. Agile - bul keń tarqalǵan usıllardıń biri bolıp, dáslep kishi yaki orta kólemli proektler ushın arnalǵan edi, ol baǵdarlamashılarǵa islep atırǵan ózgeshelikleri ústinen kóbirek baqlaw beriwge qaratılǵan, bul waqıt yamasa qárejet asıp ketiw qáwpin azaytadı. Agile-den kelip shıqqan usıllar qatarına ekstremal programmalaw hám Scrum kiredi. Ashıq kodlı programmalıq támiynattı islep shıǵıw ádette ıqtıyarlı qatnasıwshılardıń tarqalǵan tarmaǵına súyengenlikten, bir waqıttaǵı dizayn, kodlaw hám testlew menen agile metodologiyasın qollanadı.
* Agile-den tısqarı, ayırım kompaniyalar informaciyalıq texnologiyalar (IT) operaciyaların programmalıq támiynattı islep shıǵıw menen biriktiredi, bul DevOps yamasa kompyuter qáwipsizligin óz ishine alǵan DevSecOps dep ataladı. DevOps úziliksiz rawajlanıwdı, testlewdi, jańa kodtı versiyanı baqlaw sistemasına integraciyalawdı, jańa kodtı ornalastırıwdı hám geyde kodtı klientlerge jetkerip beriwdi óz ishine aladı. Bul integraciyanıń maqseti - IT xızmetlerin tezirek hám nátiyjelirek jetkerip beriw.

Kóp programmalaw metodologiyalarındaǵı jáne bir áhmiyetli baǵdar - qáwipsizlik hálsizlikleri hám qátelikler sıyaqlı máselelerdi múmkin bolǵanınsha erterek anıqlawǵa urınıw ideyası (shepke jıljıw testlewi), olardı izlew hám dúzetiw qárejetlerin azaytıw ushın.

2009-jılı, programmalıq támiynattı islep shıǵıw proektleriniń 32 procenti waqtında hám byudjet sheńberinde, tolıq funkcionallıq penen jetkerip berilgeni bahalanǵan edi. Qosımsha 44 procenti jetkerip berilgen, biraq usı ózgesheliklerdiń eń keminde birewi jetispegen. Qalǵan 24 procenti shıǵarılıwdan aldın biykar etilgen.

## Basqıshlar

Programmalıq támiynattı islep shıǵıwdıń ómirlik cikli qosımshalardı rawajlandırıwdıń sistemalı procesine tiyisli.

### Ámelge asırıw múmkinshiligi

Programmalıq ónimler ushın ideyalar derekleri kóp. Bul ideyalar bazar izertlewlerinen kelip shıǵıwı múmkin, sonıń ishinde potencial jańa tutınıwshılardıń demografiyası, bar bolǵan tutınıwshılar, ónimnen bas tartqan satıw perspektivaları, ishki programmalıq támiynattı islep shıǵıw xızmetkerleri yamasa dóretiwshi úshinshi tárep. Programmalıq ónimler ushın ideyalar ádette dáslep marketing xızmetkerleri tárepinen ekonomikalıq ámelge asırıw múmkinshiligi, bar bolǵan tarqatıw kanallarına sáykesligi, bar bolǵan ónim qatarlarına múmkin bolǵan tásirleri, talap etiletuǵın ózgeshelikleri hám kompaniyanıń marketing maqsetlerine sáykesligi boyınsha bahalanadı. Marketingti bahalaw basqıshında qárejet hám waqıt boljawları bahalanadı. Ámelge asırıw múmkinshiligin analizlew proekttiń investiciya qaytarılıwın, onıń rawajlanıw qárejeti hám waqıt kestesin esaplaydı. Usı analiz tiykarında kompaniya sonnan keyingi rawajlanıwǵa investiciya salıw boyınsha biznes sheshim qabıl etiwi múmkin. Programmalıq támiynattı islep shıǵıwǵa qarar qabıl etkennen soń, kompaniya ónimdi esaplanǵan qárejet hám waqıtta yamasa onnan tómen, joqarı sapa standartı (yaǵnıy, qáteliklerdiń joqlıǵı) hám kerekli funkcionallıq penen jetkerip beriwge itibar qaratadı. Soǵan qaramastan, kópshilik programmalıq támiynat proektleri keshigedi hám geyde múddetke úlgeriw ushın ózgeshelikler yamasa sapa boyınsha kelisimler alıp barıladı.

### Analiz

Programmalıq támiynat analizi programmalıq támiynattıń biznes talapların anıqlaw ushın talaplar analizinen baslanadı. Talaplardı anıqlawdaǵı qıyınshılıqlar sonnan ibarat, aǵımdaǵı yamasa potencial paydalanıwshılardıń hár qıylı hám bir-birine sáykes kelmeytuǵın talapları bolıwı múmkin, olar óz talapların túsinbewi múmkin hám programmalıq támiynattı islep shıǵıw processi dawamında óz talapların ózgertiwi múmkin. Aqıbetinde, analizdiń nátiyjesi baǵdarlamashılar isley alatuǵın ónim ushın tolıq specifikaciya bolıp tabıladı. Programmalıq támiynat analitikleri kóbinese proektti kishirek obektlerge bóledi, bul komponentler qárejetlerdiń nátiyjeliligin, effektivliligin hám isenimliligin arttırıw ushın qayta qollanılıwı múmkin. Proektti bóliw kóp processorlı kompyuterlerde ádewir tezirek isleytuǵın kóp aǵımlı implementaciyanı ámelge asırıwǵa múmkinshilik beriwi múmkin.

Programmalıq támiynattı islep shıǵıw processiniń analiz hám dizayn basqıshları waqtında tutınıwshınıń talapların baǵdarlamashılar ámelge asıra alatuǵın bóleklerge bóliw ushın kóbinese strukturalıq analiz qollanıladı. Programmanıń tiykarǵı logikası maǵlıwmatlar aǵımı diagrammaları, maǵlıwmatlar sózlikleri, psevdokod, jaǵday ótiw diagrammaları hám/yamasa obektler arasındaǵı baylanıs diagrammaları arqalı kórsetiliwi múmkin. Eger proekt modellestirilmegen eski programmalıq támiynat bólegin óz ishine alsa, bul programmalıq támiynat jańa programmalıq támiynat penen durıs biriktirilgenin támiyinlew ushın modellestiriliwi múmkin.

### Proektlestiriw

Proektlestiriw programmalıq támiynattı ámelge asırıw haqqında qararlar qabıl etiwdi óz ishine aladı, mısalı, qaysı programmalastırıw tillerin hám maǵlıwmatlar bazası programmalıq támiynatın paydalanıw kerek, yamasa apparatlıq támiynat hám tarmaq baylanısları qalay shólkemlestiriledi. Dizayn paydalanıwshılar menen olardıń qálewleri haqqında sınap kóriw hám qátelik processi arqalı másláhátlesiw menen iteraciyalıq bolıwı múmkin. Proektlestiriw kóbinese maǵlıwmatlar bazasın proektlestiriw, ekran arxitekturası hám serverler hám basqa apparatlıq támiynatlardıń jumısı sıyaqlı aspektlerde tájiriybeli adamlardı tartıwdı talap etedi. Proektlestiriwshiler kóbinese programmalıq támiynattıń funkcionallıǵında obektke baǵdarlanǵan programmalastırıw járdeminde qayta paydalanılıwı múmkin bolǵan ayırım modullerdi ajıratıp alıw ushın úlgilerdi tabıwǵa háreket etedi. Bunıń mısalı - model-kóriniw-basqarıwshı, grafikalıq paydalanıwshı interfeysi menen bekend arasındaǵı interfeys bolıp tabıladı.

### Programmalastırıw

Programmalıq támiynattı islep shıǵıwdıń oraylıq ózgesheligi qálegen funkcionallıqtı ámelge asıratuǵın programmalıq támiynattı jaratıw hám túsiniw bolıp tabıladı. Kodtı jazıwdıń hár túrli strategiyaları bar. Bir-birine baylanıslı programmalıq támiynattıń hár qıylı komponentleri bir-birinen ǵárezsiz boladı. Baylanıs hár qıylı programmalıq támiynat komponentleriniń óz-ara baylanısı bolıp, ol saqlawdı qıyınlastıratuǵını sebepli jaǵımsız dep esaplanadı. Kóbinese, programmalıq támiynat baǵdarlamashıları sanaat standartlarına ámel etpeydi, nátiyjede nátiyjesiz, túsiniwge qıyın yamasa funkcionallıǵı haqqında hújjetlestiriwi joq kod payda boladı. Bul standartlar ásirese múddetler bolǵan jaǵdayda buzılıwǵa beyim. Nátiyjede, kodtı testlew, dúzetiw hám qayta islew ádewir qıyınlasadı. Kodtı qayta strukturalaw, mısalı kodqa kóbirek túsindirme qosıw, kodtıń túsinikliligin jaqsılawdıń sheshimi bolıp tabıladı.

### Testlew

Testlew ‒ bul kodtıń durıs hám qátesiz orınlanıwın támiyinlew processi. Hárbir baǵdarlamashı óz kodınıń maqsetke muwapıq islewin tastıyıqlaw ushın onı saplastıradı. Ásirese, programmalıq támiynattıń barlıq kiris maǵlıwmatlarında, hátte nátiyje nadurıs bolsa da, orınlanıwı áhmiyetli. Proektke qosılǵan jańa kodtı tekseriw ushın kóbinese basqa baǵdarlamashılar tárepinen kod sholıwları qollanıladı, hám ayırım bahalawlarǵa muwapıq, bul testlewden keyin saqlanıp qalatuǵın qátelikler sanın anaǵurlım kemeytedi. Kod tapsırılǵannan keyin, sapanı támiyinlew bólimi - kópshilik iri kompaniyalar ushın baǵdarlamashı emes adamlardan ibarat ayrıqsha bólim - pútkil programmalıq ónimniń anıqlıǵın tekseredi. Dáslepki programmalıq talaplardan alınǵan qabıllaw sınawları bul ushın keń tarqalǵan qural bolıp tabıladı. Sapanı testlew kóbinese stress hám júkleme tekseriwin (programmalıq támiynattıń joqarı dárejedegi kiris yamasa paydalanıwǵa bekkemligin), integraciya testlewin (programmalıq támiynattıń basqa programmalıq támiynat penen jetkilikli dárejede birleskenin támiyinlew ushın) hám úylesimlilik sınawın (hár qıylı operaciyalıq sistemalarda yamasa brauzerlerde programmalıq támiynattıń isenimin ólshew) óz ishine aladı. Testler koddan aldın jazılǵanda, bunı testke baǵdarlanǵan rawajlanıw dep ataydı.

### Óndiris

Óndiris ‒ bul programmalıq támiynattıń aqırǵı paydalanıwshıǵa jetkeriletuǵın basqıshı. Óndiris dawamında baǵdarlamashı paydalanıwshılar ushın texnikalıq qollaw resursların yamasa burın anıqlanbaǵan qátelikler menen kemshiliklerdi dúzetiw processin jaratıwı múmkin. Eger paydalanıwshı talapları ózgergen yamasa nadurıs túsinilgen bolsa, islep shıǵıwdıń aldıńǵı basqıshlarına qaytıwı da múmkin.

## Jumısshılar

Programmalıq támiynattı islep shıǵıw baǵdarlamashılar tárepinen, ádette komanda bolıp islew arqalı ámelge asırıladı. Komanda aǵzaları arasındaǵı nátiyjeli baylanıs jetiskenlikke erisiwde áhmiyetli. Bul komanda kishi bolsa, birge islewge úyrengen hám bir-birine jaqın jaylasqan bolsa, ańsat iske asadı. Baylanıslar sonday-aq máselelerdi rawajlanıwdıń erte basqıshında anıqlawǵa hám qaytalanǵan háreketti boldırmawǵa járdem beredi. Kóplegen rawajlandırıw proektleri hárbir komponent penen birneshe xızmetkerdiń tanıs bolıwın támiyinlew arqalı tek bir xızmetkerde bolǵan áhmiyetli bilimlerdi joǵaltıw qáwpinen qashadı. Programmalıq támiynattı islep shıǵıw tek baǵdarlamashılardı emes, al testlew, hújjetlestiriw, grafikalıq dizayn, paydalanıwshılardı qollaw, marketing hám qarjı jıynaw boyınsha qánigelerdi de óz ishine aladı. Menshikli programmalıq támiynat xızmetkerlerine haqı tólense de, ashıq kodlı programmalıq támiynatqa úles qosıwshılardıń kópshiligi kewilli boladı. Yamasa, olar programmalıq támiynattı satıw emes, al basqa nárse - máselen, ashıq kodlı programmalıq támiynatqa xızmetler hám modifikaciyalar usınıw biznes modeli bar kompaniyalar tárepinen tóleniwi múmkin.

## Modeller hám qurallar

Kompyuter járdeminde programmalıq támiynattı islep shıǵıw (CASE) - bul programmalıq támiynattı islep shıǵıwdı biraz avtomatlastırıw ushın qurallar. CASE dizaynerlerge programmanıń logikasın sızıp shıǵıwǵa múmkinshilik beredi, bul jazılıwı kerek bolǵan yaki jańa kod penen integraciyalawǵa yamasa qayta injenerlewge járdem beriw ushın álleqashan bar bolǵan programma bolıwı múmkin (mısalı, programmalastırıw tilin ózgertiw ushın).

### Hújjetlestiriw

Hújjetlestiriw ádette bólek saqlanatuǵın eki formada keledi - baǵdarlamashılar ushın arnalǵan hám programmalıq támiynattı paydalanıwǵa járdem beriw ushın aqırǵı paydalanıwshıǵa jetkeriletuǵın. Baǵdarlamashı hújjetlestiriwiniń kópshiligi hárbir fayl, klass hám metod ushın qollanba programmalastırıw interfeysin (API) qamtıytuǵın kod túsindirmeleri túrinde boladı - programmalıq támiynattıń bir bólegine basqa arqalı qalay kiriwge bolatuǵınlıǵı hám kóbinese ámelge asırıw tártipleri. Bul hújjetlestiriw jańa baǵdarlamashılarǵa proekt ústinde isley baslaǵanda onı túsiniwge járdem beredi. Agile islep shıǵıwda hújjetlestiriw kóbinese kod penen bir waqıtta jazıladı. Paydalanıwshı hújjetlestiriwi kóbirek texnikalıq jazıwshılar tárepinen jazıladı.

### Miynetti bahalaw

Dál bahalaw ámelge asırıw múmkinshiligi basqıshında hám ónimdi waqtında hám byudjet sheńberinde jetkerip beriwde áhmiyetli. Bahalawlardı jaratıw procesi kóbinese proekt basqarıwshısı tárepinen tapsırıladı. Miynet bahalawı tolıq qollanbanıń kólemi menen tikkeley baylanıslı bolǵanlıqtan, ol talaplarǵa funkciyalardıń qosılıwı menen kúshli tásir etedi - qansha kóp talaplar bolsa, islep shıǵıw qárejeti sonshelli joqarı boladı. Funkcionallıq penen baylanıslı bolmaǵan aspektler, mısalı, baǵdarlamashılardıń tájiriybesi hám kodtıń qayta qollanılıwshılıǵı da bahalawda esapqa alınıwı zárúr. 2019-jılǵa kelip [jańalanǵan], programmalıq támiynattı islep shıǵıw ushın waqıt hám resurslar muǵdarın bahalaw ushın qurallarınıń kópshiligi dástúriy qollanbalar ushın dúzilgen hám veb-qosımshalar yaki mobil qosımshalarǵa qollanılmaydı.

### Integraciyalanǵan islep shıǵıw ortalıǵı

Anjuta, GNOME ortalıǵı ushın C hám C++ IDE
Integraciyalanǵan islep shıǵıw ortalıǵı (IDE) ápiwayı tekst redaktorına salıstırǵanda joqarılatılǵan funkciyalar menen programmalıq támiynattı islep shıǵıwdı qollaydı. IDEler kóbinese avtomatlastırılǵan kompilyaciya, qátelerdi sintaksislik belgilew, debaglawǵa (dúzetiwge) járdem, versiyanı basqarıw menen integraciya hám testlerdi yarım avtomatlastırıwdı óz ishine aladı.

### Versiyanı basqarıw

Versiyanı basqarıw ‒ programmalıq támiynatqa kirgizilgen ózgerislerdi basqarıwdıń keń tarqalǵan usılı. Jańa versiya tekserilgen sayın, programmalıq támiynat barlıq ózgertilgen fayllardıń rezerv kóshirmesin saqlaydı. Eger bir waqıtta bir neshe baǵdarlamashı programmalıq támiynat ústinde islep atırǵan bolsa, ol olardıń kod ózgerislerin biriktiriwdi basqaradı. Programmalıq támiynat eki topar ózgerisler arasında qarama-qarsılıq bolǵan jaǵdaylardı belgileydi hám baǵdarlamashılarǵa qarama-qarsılıqtı sheshiwge múmkinshilik beredi.

### Kórinis modeli

Kórinisler hám perspektivalardıń TEAF matricası
Kórinis modeli ‒ bul programmalıq támiynattı islep shıǵıw procesinde qollanılatuǵın sistema hám onıń ortalıǵına kóz-qaraslardı támiyinleytuǵın struktura. Bul kóriniwdiń tiykarǵı semantikasınıń grafikalıq kórinisi.

Kóz-qaraslar hám kórinislerdiń maqseti ‒ adam injenerlerine júdá quramalı sistemalardı túsiniwge hám máseleniń elementlerin tájiriybe tarawları átirapında shólkemlestiriwge múmkinshilik beriw. Fizikalıq intensiv sistemalardı injenerlewde, kóz-qaraslar kóbinese injenerlik shólkemdegi qábiletler hám juwapkershiliklerge sáykes keledi.

### Jaramlılıq funkciyaları

Jaramlılıq funkciyaları ‒ jańa islep shıǵıwlardıń belgilengen sheklewlerden, tekseriwlerden hám sáykeslik qadaǵalawlarınan awıtqımawın támiyinlew ushın avtomatlastırılǵan hám obektiv testler.

## Intellektual múlk

Baǵdarlamashılar ashıq kodlı kodtı yamasa kitapxanalardı menshikli ónimge biriktirgende, intellektual múlk másele bolıwı múmkin, sebebi programmalıq támiynat ushın qollanılatuǵın kópshilik ashıq kodlı licenziyalar modifikaciyalardıń sol licenziya boyınsha járiyalanıwın talap etedi. Alternativa sıpatında, baǵdarlamashılar menshikli alternativanı tańlawı yamasa ózleriniń programmalıq modulin jazıwı múmkin.

## Derekler