
Programmalıq injiniringge kirisiw / 3-ameliy PI_K
.pdf
3-ámeliy sabaq. XP qaǵıydaların kórip shıǵıw. XP ámeliyatları hám kózqaras payda etiw.
Jumıstıń maqseti: Bul ámeliy sabaqtıń maqseti — studentlerdi Extreme Programming (XP) metodologiyasınıń tiykarǵı qaǵıydaları hám ámeliyatları menen tanıstırıw, XP principlerin real programmalıq támiynat jaratıw processinde qollanıw kónlikpelerin qáliplestiriw. Studentler XP metodologiyasınıń tiykarǵı qádiriyatların, qaǵıydaların hám ámeliyatların meńgeriwi, olardı real programmalıq támiynat jaratıw jobalarına qollanıw jolların úyreniwi kerek.
Ámeliy bólim:
Extreme Programming (XP) metodologiyasına kirisiw
Extreme Programming (XP) — bul programmalıq támiynat jaratıwdıń jeńil (Agile) metodologiyalarınıń biri bolıp, ol tiykarınan joqarı sapalı programmalıq támiynat jaratıw hám programmistlerdiń ónimdarlıǵın arttırıwǵa baǵdarlanǵan. XP metodologiyası 1990-jıllardıń aqırında Kent Bek tárepinen islep shıǵılǵan hám programmalıq támiynat jaratıw tarawında áhmiyetli orın iyelegen.
XP metodologiyası úziliksiz rawajlanıp baratırǵan talaplar sharayatında da joqarı sapalı programmalıq támiynattı tez jaratıwǵa ılayıqlastırılǵan. Ol programmistlerdiń kásiplik qádiriyatlarına tiykarlanǵan hám jaqsı kórgenlerin (best practices) ádetten tıs dárejede qollanıwǵa baǵdarlaydı, sonnan onıń ataması –
"Extreme" kelip shıqqan.
XP metodologiyasınıń tiykarları
XP metodologiyası tómendegi bes tiykarǵı úrdiske tiykarlanǵan:
1.Kommunikaciya: XP komandaları ashıq hám tikkeley kommunikaciyaǵa baǵdarlaydı. Komanda aǵzaları, buyırtpa beriwshiler hám basqa steykxolderler arasındaǵı kommunikaciya óz waqtında bolıp, anıq hám joqarı sapalı bolıwı kerek.
2.Ápiwayılıq: XP prostotalı jobalaw hám kodlawdı baǵdarlaydı. Ápiwayı sheshim — eń jaqsı sheshim. Bul talaplardı orınlaytuǵın eń ápiwayı jumıs isleytuǵın sistemanı jaratıwdı ańlatadı.
3.Keri baylanıs: XP uziliksiz keri baylanıs alıwǵa baǵdarlanǵan. Komanda óz jumısınıń nátiyjeleri haqqında buyırtpa beriwshilerden de, sistemadan da úziliksiz keri baylanıs alıwǵa umtıladı.
4.Bekkemlik: XP komandası problemalardı sheshiwde bekkemlik kórsetiwi kerek. Bul eskirgen kodtı jańadan jazıw, qıyın máselelerdi sheshiw hám haqıyqıy sheshimlerdi qabıl etiw ushın talap etiledi.
5.Húrmet: XP komandası bir-birine húrmet penen qatnasıwı kerek. Hár bir komanda aǵzası óz komandasındaǵı basqa aǵzalardı húrmet etiwi hám olardıń jumısın bahalawı kerek.
XP metodologiyasınıń tiykarǵı qaǵıydaları
XP metodologiyası tómendegi qaǵıydalarǵa ámel qıladı:
1.Joqarı sapa: XP metodologiyası joqarı sapalı programmalıq támiynat jaratıwǵa baǵdarlanǵan. Bul sapanıń tómenligi uzaq múddetli ónimdarlıqtı páseytedi degen isenimge tiykarlanǵan.
2.Ózgerislerge ashıqlıq: XP talaplardıń úziliksiz ózgerip turıwın úrdis dep esaplaydı. Bul ózgerislerge ashıq bolıw hám olarǵa juwap beriwge tayar bolıw kerek degendi ańlatadı.
3.Kishi ózgerisler: XP metodologiyası kishi ózgerisler arqalı úlken nátiyjelerge erisiwdi usınadı. Úlken ózgerisler uzaq waqıt talap etedi hám kóp qáteliklerge alıp keledi.
4.Úziliksiz integraciya: XP metodologiyası kod ózgerislerin úziliksiz integraciyalawǵa baǵdarlaydı. Bul ózgerislerdiń tez integraciyalanıwın hám testleniwin támiyinleydi.
5.Kollektiv iyelik: XP metodologiyası kodtıń kollektiv iyeligin baǵdarlaydı. Hár bir komanda aǵzası kodtıń hár bir bólegin ózgertiwge huqıqlı hám juwapker.
XP metodologiyasınıń tiykarǵı ámeliyatları
XP metodologiyası tómendegi ámeliyatlardı óz ishine aladı:
Jobalaw ámeliyatları
1.Ápiwayı jobalaw: XP metodologiyası ápiwayı jobalawdı baǵdarlaydı. Bul tek házirgi talaplardı orınlaytuǵın eń ápiwayı jobanı jaratıwdı bildiredi.
2.Sistemalıq metaforalar: XP metodologiyası sistemanıń jumısın túsindiriw ushın metaforalardı paydalanıwdı baǵdarlaydı. Bul metaforalar komanda aǵzaları hám buyırtpa beriwshiler arasındaǵı kommunikaciyanı jaqsılawǵa járdem beredi.
3.CRC kartochkaları: XP metodologiyası sistemanı jobalaw ushın Class- Responsibility-Collaboration (CRC) kartochkaların paydalanıwdı baǵdarlaydı. Bul kartochkalar klasslar, olardıń juwapkershilikleri hám klasslar arasındaǵı baylanıslardı anıqlawǵa járdem beredi.
4.Prototip jaratıw: XP metodologiyası sistemanıń prototiplerin jaratıwdı baǵdarlaydı. Bul prototipler sistemanıń jumısın tekseriw hám buyırtpa beriwshilerden keri baylanıs alıw ushın paydalanıladı.
Programmalastırıw ámeliyatları
1.Jup programmalastırıw: XP metodologiyası jupta programmalastırıwdı baǵdarlaydı. Bul eki programmistiń bir kompyuterde birge islewin bildiredi. Bir programmist kod jazsa, ekinshisi onı kórip shıǵadı hám jaqsılaw usılların usınadı.

2.Standar kodlaw: XP metodologiyası standartlı kodlaw stilin paydalanıwdı baǵdarlaydı. Bul komanda aǵzaları arasında kodtı túsiniwdi jeńillestiredi hám qáteliklerdi azaytadı.
3.Eskirgen kodtı qayta strukturalaw (Refactoring): XP metodologiyası úziliksiz refaktoringti baǵdarlaydı. Bul kodtıń strukturasın ózgertip, onıń sapasın jaqsılaw, biraq onıń sırtqı jumısın ózgertpew processi.
4.Eń ápiwayı implementaciya: XP metodologiyası eń ápiwayı implementaciyanı baǵdarlaydı. Bul talaplardı orınlaytuǵın eń ápiwayı kodtı jazıwdı bildiredi.
Testlew ámeliyatları
1.Test birinshi jazıladı (Test-First Development): XP metodologiyası testlerdi kod jazıwdan aldın jazıwdı baǵdarlaydı. Bul testlerdi aldın jazıp, soń olardı ótetuǵın kodtı jazıwdı bildiredi.
2.Avtomatlastırılǵan testlew: XP metodologiyası avtomatlastırılǵan testlerdi paydalanıwdı baǵdarlaydı. Bul testlerdi tez hám qayta-qayta ótkeriwge múmkinshilik beredi.
3.Úziliksiz integraciya: XP metodologiyası kod ózgerislerin úziliksiz integraciyalawdı hám testlewdi baǵdarlaydı. Bul ózgerislerdiń tez integraciyalanıwın hám testleniwin támiynleydi.
Jobanı basqarıw ámeliyatları
1.Jobalaw oyını: XP metodologiyası jobalaw oyının paydalanıwdı baǵdarlaydı. Bul buyırtpa beriwshiler hám komanda arasındaǵı kelisiw hám tapsırmalardı anıqlaw processi.
2.Qısqa iteraciyalar: XP metodologiyası qısqa iteraciyalardı baǵdarlaydı. Bul iteraciyalar ádette 1-2 hápte dawam etedi.
3.Úziliksiz integraciya: XP metodologiyası kod ózgerislerin úziliksiz integraciyalawdı baǵdarlaydı. Bul ózgerislerdiń tez integraciyalanıwın hám testleniwin támiynleydi.
4.Úziliksiz jetkerip beriw: XP metodologiyası úziliksiz jetkerip beriwdi baǵdarlaydı. Bul buyırtpa beriwshilerge sistemanıń jańa versiyasın tez-tez jetkerip beriwdi bildiredi.
XP metodologiyasın qollanıw mısalı. Mısal retinde onlayn dúkan programmalıq támiynatın jaratıw processin qarastıramız. XP metodologiyasın qollanıw tómendegi basqıshlardı óz ishine aladı:
1. Jumıs basqıshın anıqlaw hám jobalaw:
oBuyırtpa beriwshi menen birge sistemanıń tiykarǵı funkcionallıǵın anıqlaw
oUser stories túrinde talaplardı jazıw (mısalı, "Paydalanıwshı tovarlardı izley aladı")
oTalaplardı prioritetlew hám iteraciyalarǵa bóliw
oBirinshi iteraciyanı jobalaw (1-2 hápte)
2.Jobalaw:
oSistemanıń ápiwayı jobasın jaratıw
o CRC kartochkaların paydalanıp klasslar strukturasın anıqlaw
oSistemalıq metaforanı anıqlaw (mısalı, "onlayn dúkan real dúkan sıyaqlı isleydi")
3.Testlerdi jazıw:
oTalaplardıń hár birine test jazıw
oAvtomatlastırılǵan testlerdi jaratıw
4.Implementaciya:
oJupta programmalastırıw arqalı kodtı jazıw
oStandartlı kodlaw stilin paydalanıw
oTestlerdi ótetuǵın eń ápiwayı kodtı jazıw
5.Refaktoring:
oKod jazılǵannan soń, onı jaqsılaw ushın refaktoring qılıw
oKodtıń sapasın jaqsılaw, biraq onıń sırtqı jumısın ózgertpew
6.Úziliksiz integraciya:
oKod ózgerislerin úziliksiz integraciyalaw
o Barlıq testlerdi ótkeriw
oAvtomatlastırılǵan build processin paydalanıw
7.Qısqa múddetli jetkerip beriwler:
oHár iteraciyadan keyin sistemanıń jańa versiyasın buyırtpa beriwshige jetkerip beriw
oBuyırtpa beriwshiden keri baylanıs alıw
8.Kelesi iteraciyanı jobalaw:
oBuyırtpa beriwshiniń keri baylanısı tiykarında kelesi iteraciyanı jobalaw
o Jańa user stories qosıw yamasa bar bolǵanların ózgertiw o Processti qaytalaw
Bul mısalda XP metodologiyasınıń tiykarǵı ámeliyatları qollanıladı: jupta programmalastırıw, test birinshi jazıladı, úziliksiz integraciya, qısqa iteraciyalar, eskirgen kodtı qayta strukturalaw hám t.b. Bul ámeliyatlar joqarı sapalı programmalıq támiynattı tez jaratıwǵa hám buyırtpa beriwshiniń talaplarına juwap beriwge járdem beredi.

Máseleniń qoyılıwı, ámeliy tapsırmalar:
Tapsırma 1
Siz jańa programmalıq támiynat jaratıw jobasın baslap atırsız. XP metodologiyasın qollanıp, jobanı planlaw processin táriyipleń. Tómendegi sorawlarǵa juwap beriń:
1.Jobanıń tiykarǵı úrdislerin qalay anıqlaysız?
2.User stories di qalay jazasız hám prioritetleysiz?
3.Iteraciyalardı qalay planlaysız?
4.Jobanı basqarıw ushın qanday XP ámeliyatların qollanasız?
Tapsırma 2
Topar bolıp islesiń (3-4 adam). Siz onlayn buyırtpa beriw sistemasın jaratıp atırsız. XP metodologiyasın qollanıp, tómendegi máselelerdi sheshiń:
1.Sistemanıń tiykarǵı funkcionallıǵın anıqlań hám onı user stories túrinde jazıń (keminde 5 user story)
2.CRC kartochkaların paydalanıp, sistemanıń tiykarǵı klasslar strukturasın jaratıń
3.Eń áhmiyetli user story ushın test jazıń
4.Jupta programmalastırıw principlerin paydalanıp, testlerdi ótetuǵın kod jazıń
Tapsırma 3
Siz jaslar ushın mobil qosımsha jaratıp atırsız. XP metodologiyasın qollanıp, tómendegi máselelerdi sheshiń:
1.Qosımshanıń tiykarǵı funkcionallıǵın anıqlań hám onı user stories túrinde jazıń
2.Birinshi iteraciyanı planlań
3.Test-First Development principin qollanıp, birewin implementaciyalań
4.Jazılǵan kodtı refaktoring qılıń hám onıń sapasın jaqsılań
Tapsırma 4
Siz bar bolǵan sistemanı jańalap atırsız. XP metodologiyası principlerin qollanıp, tómendegi máselelerdi sheshiń:
1.Sistemanıń bar bolǵan problemaların anıqlań
2.Sistemanı jaqsılaw ushın XP ámeliyatların qalay qollanıwdı táriyipleń
3.Kod sapasın jaqsılaw ushın refaktoring planın jaratıń
4.Avtomatlastırılǵan testlerdi jaratıw hám úziliksiz integraciya sistemasın engiziw jobasın jaratıń