Mirëmbajtja e softuerit

**Mirëmbajtja e softuerit** ose *en:Software maintenance* në inxhinierinë softuerike është ndryshimi i një produkti softuerik pas lëshimit, për të përmirsuar ndonjë problem, për të përmirësuar performancën apo cilësi të tjera .

Një perceptim i zakonshëm i mirëmbajtjes është se përfshin vetëm rregullimin e defekteve (*bug*). Megjithatë, një studim tregoi se pjesa më e madhe, mbi 80%, e përpjekjeve të mirëmbajtjes është përdorur për qëllime jo-korrigjuese të veprimeve (Pigosky 1997) .

Çështjet kryesore të mirëmbajtjes softuerike janë dy, menaxhuese dhe teknike. Çështjet kryesore të menaxhimit janë: përafrimi me prioritetet e konsumatorëve, personelit, organizimi i të cilës bën mirëmbajtjen, vlerësimin e kostos. Çështjet kryesore teknike janë: kuptimi i kufizuar, analizat e ndikimit, testimi, matjen e gjendjes.

## Koncepti i mirëmbajtjes
Mirëmbajtja dhe përmirësimi i softuerit, procesi për tu përballur me problemet e reja të zbuluara ose kërkesat e reja mund të marrë më shumë kohë se sa fillimi i ndërtimit të një softueri. Jo vetëm që mund të jetë e nevojshme të shtoni kod që nuk përshtatet me dizajnin origjinal, por vetëm përcaktimi se sa softueri punon në një pikë të caktuar pasi është e përfunduar mund të kërkojë shumë përpjekje për kuptimin nga një inxhinier softuerik. Rreth 2/3 e punës së inxhinierisë softuerike është mirëmbajtja, por kjo statistikë mund të jetë konfuze. Një pjesë e vogël e saj është për përmirësimin e gabimeve. Pjesa më e madhe e mirëmbajtjes është shtimi i sistemit për të bërë funksione të reja, e cila në shumë mënyra mund të konsiderohet si punë e re. Inxhinieria civile, arkitektura dhe punët me konstruksione, mirëmbajtja kryhet me mënyrë të njëjtë.

Mirëmbajtja softuerike dhe evolucioni i sistemeve u drejtua së pari nga Meir M. Lehman në vitin 1969.
Gjatë një periudhe prej njëzet vjetësh, hulumtimi e tij çoi në formulimin e "Ligjeve të Lehman për Inxhinieri softuerike" (Lehman 1997). Përfundimet kryesore të hulumtimit të tij përfshijnë atë që mirëmbajtja është me të vërtetë zhvillimi evolutiv dhe se vendimet e mirëmbajtjes janë ndihmuar nga të kuptuarit se çfarë ndodh me sistemet (dhe softuerët) me kalimin e kohës. Lehman tregoi se sistemet vazhdojnë të evoluojnë me kalimin e kohës.

## Rëndësia e mirëmbajtjes të softuerit
Në fund të viteve 1970, një studim i famshëm dhe të cituar gjerësisht nga Lientz dhe Swanson, ekpozoj një pjesë shumë të lartë të kostos së ciklit të jetës që janë duke u shpenzuar për mirëmbajtjen. Ata kategorizuan aktivitet të mirëmbajtjes në katër klasa:
* Adaptive - që kanë të bëjnë me ndryshimet dhe përshtatjes në gjendjen e softuerit
* Perfektive - akomodimin me ndryshimin ose kërkesat e reja të përdoruesve që preokupojnë në zgjerimin e funksioneve të softuerit
* Korrigjuese - që kanë të bëjnë me gjetjen e gabimeve dhe rregullimin e tyre
* Parandaluese - aktivitetet e shqetësuese që synojnë në rritjen e qëndrueshmërisë të softuerit dhe për të parandaluar problemet në të ardhmen

Anketa tregon se rreth 75% e mirëmbajtjes ishte në të dy llojet e para, ndërsa për korrigjimin e gabimeve rreth 21%. Shumë studime të mëvonshme tregojnë një madhësi të ngjashëm të problemit. Studimet tregojnë se kontributi i përdoruesi të fundit është vendimtar për analizat dhe grumbullimin e të dhënave sipas kërkesave të reja. Ky është shkaku kryesor i ndonjë problem gjatë evolucionit të softuerit dhe mirëmbajtjes. Pra, mirëmbajtja e softuerit është e rëndësishme sepse ajo konsumon një pjesë të madhe të shpenzimeve të përgjithshme të ciklit jetësor "lifecycle" dhe gjithashtu paaftësia për të ndryshimin në mënyrë më të shpejtë dhe të besueshëm do të thotë se mundësitë e biznesit janë të humbura 

.

## Modeli i procesit të mirëmbajtjes të softuerit
Në procesin e mirëmbajtjes softuerike, përdoret termi ri-innxhinieri ose ri-ndërtimi i pjesëve të ndryshme të softuerit.

Modeli i procesit ka disa principe, për të implementuar këto principe, aplikohet një model i procesit që definon gjashtë aktivitete (të treguar në figurën djathtas). Në disa raste, këto aktivitete ndodhin në një sekuencë lineare, por kjo nuk është gjithmonë shkaku. Për shembull, mund të jetë inxhinieria e kundërt(të kuptuarit e punëve të brendshme të një programi) mund të ndodhë para se ristrukturimi i dokumentimit të fillojë.

Paradigma e ri-inxnxhinierisë është një model ciklik. Kjo do të thotë që secili nga aktivitetet e paraqitura si pjesë e modelit të mund të rishikohen. Për ndonjë cikël të veçantë, procesi mund të përfundojë pas çdo njërit prej këtyre aktiviteteve .

## Referime 
## Lexime të tjera
* 
* 
* 
* 
* 
* 
* 

## Lidhje të jashtme
* Journal of Software Maintenance  
* Software Maintenance Maturity Model  
* Software Product Development