1.5.2 Konfiguratsioonihaldus

Tarkvarasüsteemi loomisel ning tema hilisemal parandamisel ja muutmisel töötavad mitmed arendajad. See tegevus kestab aastaid ja selle aja jooksul tekib tarkvarast mitmeid variante - nn versioone. Et tarkvarauuenduste töösse andmine ja vajadusel vanemate versioonide taastamine sujuks, on tarvilik järgida mingeid protseduurireegleid, süstematiseerida kogu tekkinud koodi ja vastavat dokumentatsiooni: uuendusnõudeid, vearaporteid jne.
Iga tarkvara muutub ja on kui hulk erinevaid versioone. Uued versioonid realiseerivad muudatusettepanekuid, vigadeparandusi, kohandamisi teiste riistvara ja operatsioonisüsteemidega. Koge selles muutuste virrvarris on vaja korda ja süsteemi.
Konfiguratsioonihaldus (configuration management) on väljatöötamisel oleva tarkvarasüsteemi koodibaasi ja dokumentatsiooni haldamine, järgides protseduure ja kasutades sobivat tarkvara. Konfiguratsioonihaldus on vajalik, et mitte kaotada järge muudatuse ja komponentide versioonide üle erinevates süsteemi versioonides. Konfiguratsioonihaldusega võib tegeleda lausa eraldi meeskond, kelle ülesandeks on jälgida ja tagada, et tarkvarauuendused lisanduksid süsteemi juhitud viisil ning info muudatuste kohta pandaks kirja ning säilitataks piisava detailsusega. Et uuendusi viivad siiski sisse arendajad, siis on nende töö süstematiseerimiseks sisseviidud selged protseduurireeglid. Nt millistel tingimustel võib uue koodi lisada olemasoleva süsteemi juurde, millal kõike kokku kompileerida, kuhu ja kuidas muudatused registreerida jne.
Konfiguratsioonihalduse protsess jagatakse muudatuste halduseks, versioonihalduseks, süsteemi järkude (build) ja redaktsioonide (release) halduseks.
Versioonihalduse ülesandeks on pidada järge tarkvara kõigi komponentide versioonide ja nendes tehtud muudatuste üle. Sellega tagatakse ka, et erinevate arendajate tehtud muudatused ei hakkaks üksteist segama.
Edukaks versioonihalduseks tasub kasutada vastavat tarkvara (nt CVS, Git, Subversion jt). Hea tarkvara lubab isegi üheaegset tööd sama faili kallal.
Versioonihaldusega on tihedalt seotud järkude haldus.
Süsteemi järk on tarkvara versioon, mis tarnitakse kasutajale. Üldkasutatava tarkvara jaoks (kontoritarkvara jms) eristatakse kahte tüüpi järke: peajärk (major release) toob kaasa mõne olulise uue funktsionaalsuse ja pisijärk (minor release) parandab mõne vea või kasutaja teatatud probleemi. Eritarkvara puhul võivad erinevatel klientidel olla tarkvarast erinevad järgud/versioonid ning igaüks neist võib areneda omasoodu. Nii võib ühest süsteemist töötada samaaegselt mitu erinevat versiooni. Probleemi ilmnemisel tarkvara kasutamisel peab olema võimalik taastada täpselt selline tarkvara variant, nagu see on sellele kliendile antud. Seetõttu peab järkude info olema piisava detailsusega säilitatud ehk iga järk tuleb dokumenteerida selliselt, et see oleks hiljem taasesitatav.