Professional Documents
Culture Documents
Profesor:
Dušan Stanković
Učenik:
Aldina Brkić ITA21/22
Assignment - Alati za upravljanje softverskom konfiguracijom
• Navesti razloge za korištenje alata za upravljanje softverskom
konfiguracijom.
• Dati karakteristike alata za upravljanje konfiguracijom.
• Opisati neke od najpopularnijih alata I prikazati njihove mogućnosti.
Uvod:
Prilikom izgradnje softvera neminovno se dešavaju promene. Pošto se dešavaju
moraju da se kontrolišu na efikasan način. Upravljanje softverskom konfiguracijom
(eng. Software Configuration Management - SCM) je aktivnost praćenja i
kontrolisanja promena u softveru. To je skup aktivnosti koje su dizajnirane radi
kontrole promena putem identifikovanja proizvoda rada koji će se verovatno
promeniti, ustanovljavanjem relacija među njima, definisanjem mehanizama za
upravljanje različitim verzijama ovih proizvoda rada, kontrolisanje promena koje su
nametnute, vođenje dnevnika i izveštavanje o promenama koje su napravljene.
Alati
Zadatak održavanja softvera postao je toliko vitalan i složen proces da je
potrebna automatizirana podrška kako bi se taj proces obavio što učinkovitije.
Alati za održavanje softvera su softverski proizvodi koji pomažu djelatnicima u
održavanju u obavljanju njihovih zadataka . Omogućuju bolje strukturiranje i
organiziranje procesa. Povratne informacije o korištenju automatiziranih procesa
održavanja i alata za podršku pomažu u razvoju područja i usmjeravaju budući
napredak. Alati za održavanje softvera su i sami softverski sustavi koji se razvijaju i
moraju se održavati. Postoji nekoliko dobavljača koji razvijaju i prodaju širok
raspon alata za koje tvrde da podržavaju održavanje softvera. Neki od alata to rade
bolje, neki lošije. Imajući to u vidu, potrebno je uzeti u obzir nekoliko čimbenika za
odabir pravog alata za određeni zadatak. Ti čimbenici su mogućnost (engl.
capability), značajke, odnos troška i koristi, platforma, programski jezik,
jednostavnost korištenja, otvorenost arhitekture, stabilnost dobavljača i
organizacijska kultura . Mogućnost pokazuje ima li alat mogućnosti za obaviti
određeni zadatak i jedan je od najvažnijih kriterija koje treba uzeti u obzir pri
ocjenjivanju alata. Nakon što je odlučeno da neki zadatak može imati koristi od
automatizacije, treba uzeti u obzir značajke koje se očekuju od bilo kojeg
potencijalnog alata. Također, treba napraviti analizu alata koja prikazuje koje
prednosti on donosi u odnosu na troškove. Prednosti koje alat donosi moraju se
procijeniti u smislu pokazatelja kao što su kvaliteta, produktivnost, brzina
reagiranja i smanjenje troškova. Okruženje na kojem se alat pokreće naziva se
platforma. Jezik izvornog koda naziva se programski jezik. Važno je odabrati alat
koji podržava jezik koji je industrijski standard. Alat bi trebao biti jednostavan za
korištenje, odnosno trebao bi trebao imati slične funkcionalnosti, kao i oni s
kojima su korisnici već upoznati. Alat bi trebao imati mogućnost integriranja s
alatima različitih dobavljača, što će biti od velike pomoći kada alat treba pokrenuti
s drugim alatima. Otvorenost arhitekture igra važnu ulogu kada je problem
održavanja složen, kada postoji potreba za više alata koji rade zajedno. Također je
važno uzeti u obzir vjerodostojnost i ugled dobavljača. Zbog velike konkurencije u
računalnoj industriji, tvrtka koja ne može pratiti konkurenciju može nestati s
poslovne scene i ostaviti svoje korisnike bez podrške. Dobavljač bi trebao biti
sposoban podržati alat u budućnosti i omogućiti dugotrajnu korisničku podršku.
Drugi važan čimbenik je kultura organizacije. Svaka kultura ima svoj radni obrazac,
stoga je važno uzeti u obzir hoće li ciljani korisnici prihvatiti alat. Odabrani alati
moraju podržavati razumijevanje programa (engl. program understanding) i
obrnuti inženjering (engl. reverse engineering), testiranje, upravljanje
konfiguracijom i dokumentacijom. Na temelju toga razlikuju se četiri kategorije
alata za održavanje, koje su klasificirane na temelju specifičnih zadataka koje alati
podržavaju.
Upravljanje konkurentnošću
Konkurentnost se odnosi na istovremeno uređivanje datoteka od strane više ljudi.
S obzirom na veliko skladište, zapravo je cilj da veći broj ljudi ima pristup
dokumentima, što opet može dovesti do određenih problema.
Razmotrimo jednostavan primer. Pretpostavimo da smo dopustili inženjerima da
izmene istu datoteku istovremeno u centralnom skladištu izvornog koda. Klijent 1 i
Klijent 2 trebaju da naprave promene u datoteci u isto vreme:
• Klijent 1 otvara bar.cpp.
• Klijent 2 otvara bar.cpp.
• Klijent 1 menja datoteku i snima je.
• Klijent 2 menja datoteku i snima je prekopirajući tako promene Klijenta 1
Očigledno, ne želimo da se to dogodi. Čak, iako se kontoliše situacija tako što dva
inženjera rade na dvema kopijama umesto da rade direktno na glavnoj datoteci
(kao što je prikazano na slici), opet se nekako te promene moraju ažurirati. Većina
SCM sistema rešava ovaj problem dopuštajući većem broju inženjera da urade
check-out datoteke (ili sync na slici) i ukoliko je potrebno izvrše promene. SCM
sistem zatim pokreće algoritam za spajanje tih promena kada se uradi check-in
datoteke (ili submit na slici) i vraća ih u skladište (Slika 1).
Ovi algoritmi mogu biti jednostavni (pita se inženjer za rešavanje izmene na
konfliktima) ili složeniji (utvrditi kako spojiti promene i pitati inženjera samo ako se
sistem stvarno zaglavi).
Verziranje
Verziranje se odnosi na praćenje datoteka i omogućava ponovno stvaranje
prethodne verzije datoteke. To se radi kreiranjem arhive kopije svake datoteke u
skladištu, ili snimanjem svake promene datoteke. U svakom trenutku možemo
koristiti arhivu ili promeniti podatke za izradu prethodnih verzija. Verzirani sistemi
takođe mogu kreirati log izveštaje ko je napravio promene, kada su urađene i šta je
promenjeno.
Sinhronizacija
Sa nekim SCM sistemima, pojedinačni fajlovi se uzimaju i vraćaju (check-in, check-
out) iz skladišta. Bolji sistemi omogućuju chek-in više fajlova odjednom. Inženjeri
proveravaju sopstvene datoteke, završavaju ih i rade na njima ako je potrebno. Oni
su tada napravili njihove izmene i ažurirali svoje kopije (check-in) da bi ostali u
toku sa promenama koje su napravili drugi inženjeri. Ovaj proces se naziva
sinhronizacija.
Subversion
Jedan od primera je Subversion (SVN), open-source sistem za kontrolu verzija. Ima
sve osobine koje su predhodno opisane.
SVN primenjuje jednostavne metodologije kada dođe do konflikta. Konflikt je kada
dva ili više inženjera naprave različite izmene u istoj oblasti osnovnog koda, i onda
pošalju njihove izmene. SVN samo obaveštava inženjere da je nastao konflikt, a
inženjeri to trebaju da reše.