Ծրագրակազմի պահպանում

Ծրագրակազմի պահպանումը ծրագրակազմի ճարտարագիտության մեջ` օգտագործման դրվելուց հետո ծրագրային արտադրանքի փոփոխությունն է` անսարքությունները շտկելու, աշխատանքը բարելավելու և այլնի համար։ Այն համարվում է ծրագրակազմի ծրագրավորման կյանքի ցիկլի (SDLC) մաս։ 
Մի ընդհանուր ընկալում է, որ ծրագրակազմի պահպանումը պարզապես թերությունները շտկելու համար է, սակայն մի ուսումնասիրություն ցույց է տվել, որ պահպանման աշխատանքի շուրջ 80%-ը ճշտելու գործողությունների հետ կապ չունի։


== Պատմություն ==
Ծրագրակազմի պահպանման և համակարգերի էվոլյուցիայի մասին առաջին անգամ անդրադարձել է Մեյր Մ․ Լեհմանը 1969թ․։ Քսան տարվա ընթացքում նրա հետազոտությունը հանգեցրեց ծրագրակազմի էվոլյուցիայի Լեհմանի օրենքների ձևակերպմանը։ Նրա հետազոտության հիմնական արդյունքները եզրակացնում են, որ ծրագրակազմի պահպանումը իսկապես էվոլյուցիոն զարգացում է և պահպանման որոշումներն կատարվում են հասկանալով, թե ինչ է տեղի ունենում ծրագրակազմի հետ ժամանակի ընթացքում։ Լեհմանը ցույց տվեց, որ ծրագրակազմերը ժամանակի ընթացքում շարունակում են զարգանալ։


== Ծրագրակազմի պահպանման կարևորությունը ==
Ծրագրակազմի պահպանման հիմնական խնդիրները ինչպես կառավարչական, այնպես էլ տեխնիկական են։ Կառավարման հիմնական խնդիրներն են՝ հաճախորդների առաջնահերթությունների հետ համապատասխանեցում, անձնակազմի հավաքագրում, պահպանումը իրականացնող կազմակերպության ընտրություն, ծախսերի գնահատում։ Հիմնական տեխնիկական խնդիրներն են` ազդեցության վերլուծություն, փորձարկում, պահպանելիության չափում։ Ծրագրակազմի պահպանումը շատ լայն գործունեություն է, որը ներառում է սխալների ուղղում, կարողությունների բարելավում և օպտիմիզացում։ Քանի որ փոփոխությունն անխուսափելի է,մեխանիզմերը պետք է մշակվեն գնահատման, վերահսկման և փոփոխություններ կատարելու համար։ Այսպիսով, ծրագրակազմի վրա արված ցանկացած աշխատանք իր գործարկելուց հետո համարվում է պահպանման աշխատանք։ Նպատակը ծրագրակազմի արժեքի պահպանումն է ժամանակի ընթացքում։ Արժեքը կարող է բարելավվել `ընդլայնելով հաճախորդների բազան, կատարելագործելով հավելյալ պահանջներ, դառնալով ավելի դյուրին, ավելի արդյունավետ և օգտագործելով ավելի նոր տեխնոլոգիա։ 


== Ծրագրակազմի պահպանման կատեգորիաները ==
Ուղղիչ պահպանում` սպառողներին ներկայացվելուց հետո ծրագրային արտադրանքի փոփոխությունը՝ հայտնաբերված խնդիրները լուծելու համար։ Հիմնականում այս կատեգորիայի հետ է ասոցացվում ծրագրակազմի պահպանումը։ Ուղղիչ պահպանումը կարող է ավտոմատացվել սխալների ավտոմատ շտկմամբ և հայտնաբերել սխալները նախքան օգտվողները։
Ադապտացվող պահպանում՝ սպառողներին ներկայացվելուց հետո ծրագրային արտադրանքի փոփոխությունը՝ օգտագործումը փոփոխվող միջավայրում ապահովելու համար։ Սա կարող է առաջ գալ սարքախմբի, ամպային պահեստի կամ օպերացիոն համակարգի փոփոխությունների արդյունքում։
Կատարելացնող պահպանում՝ սպառողներին ներկայացվելուց հետո ծրագրային արտադրանքի փոփոխությունը՝ աշխատանքը և պահպանումը բարելավելու և առկա պահանջների ու առանձնահատկությունների զարգացման համար։ Այն կարող է ավելացնել և հեռացնել հատկություններ, որպեսզի ավելի արդյունավետ և գործունակ դարձնել ծրագրակազմը։
Կանխարգելիչ պահպանում՝ սպառողներին ներկայացվելուց հետո ծրագրային արտադրանքի փոփոխությունը՝ թաքնված անսարքությունները հայտնաբերելու և շտկելու համար։ Այն օգնում է կատարել փոփոխություններ ծրագրակազմին, արպեսզի այն շարունակի աշխատել երկար ժամանակահտվածում և չվատթարանա, պահպանելով ծրագրակազմի կայուն և հասկանալի լինելը։


== Ծրագրակազմի պահպանման գործընթացը ==
Իրականացման գործընթացը պարունակում է ծրագրակազմի նախապատրաստման գործողություններ ինչպիսիք են պահպանման ծրագրի մշակումը, ձևավորումը և ընթացքում հայտնաբերված խնդիրների լուծումը։
Խնդիրների և փոփոխությունների վերլուծության գործընթացը, որն իրականացվում է այն բանից հետո, երբ ծրագիրը դարձել է պահպանման խմբի պատասխանատվությունը։ Ծրագրավորողը պետք է վերլուծի յուրաքանչյուր հայտ, հաստատի այն (վերարտադրելով իրավիճակը) և ստուգի դրա վավերությունը, ուսումնասիրի այն և առաջարկի լուծում, փաստաթղթավորի հայտը և լուծման առաջարկը և, վերջապես, ստանա բոլոր անհրաժեշտ թույլտվությունները փոփոխությունները կիրառելու համար։
Բուն փոփոխության իրականացումը դիտարկող գործընթացը։
Փոփոխության գործընթացի ընդունումը` հաստատելով փոփոխված աշխատանքը հայտը ներկայացրած անհատի հետ` համոզվելու համար, որ փոփոխությունը լուծում է տվել։
Տեղափոխման գործընթացը(օրինակ, պլատֆորմի տեղափոխում) բացառիկ է և ամենօրյա պահպանման խնդիրների մաս չէ։ Եթե ծրագրակազմը պետք է տեղափոխվի մեկ այլ հարթակ ՝ առանց գործառույթների որևէ փոփոխության, այս գործընթացը կօգտագործվի, և, ամենայն հավանականությամբ, պահպանման կազմակերպման թիմ է նշանակվելու այս առաջադրանքին։
Վերջին գործընթացը՝ ծրագրակազմի որևէ մասի ավարտը։


== Ծանոթագրություններ ==


== Աղբյուրներ ==
Ծրագրակազմի պահպանման տեսակները
Ծրագրակազմի պահպանման գործողությունները
Ծրագրակազմի պահպանման և էվոլյուցիայի ակնարկ


== Գրականություն ==
Կ․Հ․ Բեննետ, Վ․Տ․Ռաժլիչ՝ <<Software Maintenance and Evolution>>
Ա․Ապրիլ, Ա․Աբրան՝ <<Software Maintenance Management Evaluation and Continuous Improvement>>
Փ․Գրաբբ,Ա․Ա․Տականգ՝ <<Software Maintenance Concepts and Practice>>


== Արտաքին հղումներ ==
Ծրագրակազմի պահպանման սահմանումները
Լեհմանի օրենքները
Ծրագրակազմի պահպանման խնդիրները