Ինչպե՞ս են «ապրում» համակարգչային ծրագրերը



Software Development Life Cycle… չէ չէ, այս գրառումը անգլերենով չի լինելու։ Պարզապես մենք պարբերաբար ծանոթացնելու ենք տեխնոլոգիական ոլորտի բառապաշարին։ Համ IT մարդկանց շրջապատում օտար չեք զգա, համ էլ․․գիտելիք է, մի օր հաստատ պետք կգա։ Չէ, սա դպրոցում անցած քիմիայի բարդ խնդիրների մասին չի, որ հա սպասում ենք, թե երբ են պետք գալու։ Ինչևէ, չշեղվենք։ Software Development Life Cycle- համակարգչային ծրագրի, հավելվածի ստեղծման կենսացիկլ։ Ասել է, թե այսօր խոսելու ենք այն փուլերի մասին, որոնցով անցնում է ծրագիրը՝ գաղափարից մինչև վերջնական օգտագործողին հասանելի լինելը։ Օպերացիոն համակարգեր, Microsoft Office -ի ծրագրեր, Skype, iTunes, Photoshop, և անգամ Facebook- սրանք ընդամենը մի քանի օրինակներ են ծրագրերի (software/ software product), ամբողջը թվել այս թվային դարաշրջանում գրեթե անհնարին է, քանակը չափազանց մեծ է։ Պարզ է, որ այս ծրագրերը չեն ստեղծվել մեկ օրում։ Իրենք ևս ունեն կյանք և անցնում են որոշակի փուլերով։ Եկեք պատկերացնենք, որ ունենք գաղափար և պետք է իրականացնենք այն։ Մենք և Դուք, մի թիմում ենք, և միասին ստեղծելու ենք software: 

Գաղտնիք չի, որ այն ստեղծելու համար անհրաժեշտ է ծրագրավորման լեզու, ինչպիսին է օրինակ Java-ն՝ պահանջարկը չկորցնող, տարածված ու լայն հնարավորություններ տվող։ Մեր թիմը, Ձեզ հետ միասին, այդ լեզվի միջոցով ստեղծելու ենք ծրագիրը և դա անելու համար անպայման անեցնելու ենք հետևյալ ճանապարհով․

1․ Պահանջների հավաքագրում և վերլուծում / Requirement collection and analysis

2․ Պլանավորում / Plan

3․ Նախագծում / Design 

4․ Կառուցում / Build 

5․ Կոդի թեստավորում / Test

6․ Տեղակայում / Deployment 

7․ Սպասարկում / Maintenance 


Նախ քննարկելու եք, թե ինչ խնդիրներ է լուծելու այդ ծրագիրը, ինչպիսի տեխնիկական պահանջների պետք է համապատասխանի։ Այս փուլում հավաքագրում ենք բոլոր պահանջներն ու վերլուծում դրանք։  Այս ամենը հստակեցնելուց հետո, պլանավորելու եք, թե ինչպես եք իրագործելու աշխատանքը․ ովքեր ինչ են անելու ու ինչ ժամկետներում, ինչպես։ Սա եվս քննարկելուց հետո, անհրաժեշտ է հասկանալ, թե «ինչպե՞ս ենք ստանալու այն ինչ ուզում ենք», և կազմում ենք նախագծման պլանը։ Ծրագրի մեջ ներգրավված մարդիկ ծանոթանում  են նախագծման պլանի հետ, արտահայտում են իրենց կարծինքն ու առաջարկությունները։ Այս փուլում չափազանց կարևոր է պրոցեսի բոլոր մասնակիցների կարծիքը հաշվի առնել ու լսել առաջարկությունները, հակառակ դեպքում ծրագրի իրականացումը չի ընթանա սահում և կարող է խնդիրներ առաջացնել հետագայում։ Բոլոր քննարկումները անելուց հետո վերջապես հասնում ենք 4-րդ փուլին, երբ խանդավառությամբ կարող ենք ասել ՝ «եկեք ստեղծենք այն, ինչ մենք ուզում ենք», ու սկսենք կյանքի կոչել ծրագիրը։ Այս փուլում է, որ ծրագրավորողներն անցնում են գործի ու գաղափարը կաթիլ-կաթիլ դարձնում իրականություն։

Հաջորդ փուլում ծրագրավորողներին միանում են որակի ապահովման աստվածները(QA Engineers/ Software engineers in Test, etc)։ Նրանց խնդիրն է հավաստիանալ, որ «մենք իսկապես ստացել ենք այն, ինչ ցանակնում էինք»։ Որակի ապահովման մասնագետները այս փուլում բացահայտում են ծրագրի կամ կոդի թերություններն ու բացերը և հավաստիանում, որ կոդը համապատասխանում է նախապես քննարկված և որոշված չափանիշներին ու պահանջներին։

Թերությունները վերացնելուց հետո, հասնում ենք ամենահուզառատ փուլին․ «սկսենք օգտագործել այն, ինչ ստեծել ենք», այս փուլում է, որ մեր ստեղծած ծրագիրը հասանելի է դառնում օգտատերերին։ Հավելենք, որ այս փուլում շատ կազամկերպություններ նախընտրում են ծրագիրը նախքան մեծ շուկա հանելը, տեղակայել այն տարբեր միջավայրերում (production environment), որպեսզի նախքան շուկայում հասանելի լինելը կարողանան կատարել իրենց ցանկացած փոփոխությունները։ Սա թույլ է տալիս նախքան վերջնական մեկնարկը, որսալ բոլոր թերությունները և կատարել շտկումներ։ 

Թվում է, թե օգտատերերի հասանելի դառնալուց հետո ծրագրի վրա աշխատաքն ավարտվում է։ Բայց․․․ մի գաղտնիք բայացահայտենք :) ․․․ այն ծրագիրը, որը ստացվել է, կատարյալ չէ, և ոչ մի ծրագիր այդպիսին չէ։ Եվ ծրագրի այս անընդհատ կատարելագործումը տեղի է ունենում սպասրկման կամ Maintenance փուլում։ Այս փուլում մենք խնդիր ունենք հետևելու մեր ստեղծած ծրագրի աշխատանքին, գտնելու թերություններ ու բացեր, կատարել շտկումներ։ Այո, այո, կատարելության հասնելու ձգտումը մեծ է, ու մասնագետները անընդհատ աշխատում են, որպեսզի օգտատերերը ունենան հնարավորինս անթերի ու անխափան ծրագիր, որպես մենք և դուք ամեն օր մեր համակարգիչներից, բջջային հեռախոսներից և այլ թվային սարքերից օգտվելիս սպանենք հնարավորինս քիչ նյարդային բջիջներ, չէ որ դրանք չեն վերականգնվում։ Անխափան ու անթերի ծրագրեր մեզ բոլորիս :)  

Հ․Գ․ Դու ևս կարող ես ստեղծել քո software product/app-ը։ Սկսի՛ր ծրագրավորման լեզու սովորելուց: