37
alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08 Softversko Inženjerstvo Alati za upravljanje softverskom konfiguracijom Predmetni nastavnik: polaznik: 1/23

8.Alati Za Upravljanje Softverskom Konfiguracijom

Embed Size (px)

DESCRIPTION

opisivanje alata scm-a

Citation preview

Page 1: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Softversko Inženjerstvo

Alati za upravljanje softverskom konfiguracijom

Predmetni nastavnik: polaznik:Goran Radić Boris Tikvenjac ITA/08 17.08.2009.

1/23

Page 2: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

TABLE OF CONTENTSCHAPTER TITLE PAGE

ALATI ZA UPRAVLJANJE SOFTVERSKOM KONFIGURACIJOM - ATACHMENT_1/23

UVOD _________________________________________________________________ 3/23

RAZVOJ SCM-a KROZ ISTORIJU __________________________________________ 4/23

OSNOVNE FUNKCIJE SCM ALATA _______________________________________ 5/23

VERSION MANAGEMENT _______________________________________________ 6/23

VARIANTS, WORKSPACE MANAGEMENT ________________________________ 7/23

CONFIGURATION SELECTION __________________________________________ 8/23

BUILD, RELEASE AND DISTRIBUTED MANAGEMENT ______________________ 9/23 CONCURRENT DEVELOPMENT ________________________________________ 10/23

CHANGE MANAGEMENT PROCESS _____________________________________ 11/23

TRACEABILITY _______________________________________________________ 12/23

PRIMER CR-A _________________________________________________________ 13/23

INTEGRATION WITH OTHER TOOLS _____________________________________ 14/23

COMERCIAL SCM TOOLS, ALLFUSION HARVEST CHANGE MANGER _______ 15/23

RATIONAL CLEARCASE _______________________________________________ 16/23

RATIONAL CLEARCASE, CM SYNERGY __________________________________ 17/23

CM SYNERGY _________________________________________________________ 18/23

MERANT PVCS ________________________________________________________ 19/23

MICROSOFT VISUAL SOURCE SAFE, LIST OF SCM COMMERCIAL TOOLS ___ 20/23

LIST OF SCM COMMERCIAL TOOLS _____________________________________ 21/23

FREEWARE SCM TOOLS, RCS TOOLS ____________________________________ 22/23

2/23

Page 3: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

CVS TOOLS, LIST OF FREE SCM TOOLS __________________________________ 23/23

UVOD

U današnjem vremenu potreba za kompleksnim sistemima enormno raste. Takvi sistemi, sastavljeni od hardvera, softvera i prateće dokumentacije, pomeraju granice zahteva u integraciji sistema. Složeni sistem se često razvija u nekoliko grupa i svaki njegov deo u razvoju zahteva kontrolu upravljanja PDM-a (Project Data Management) u slučaju hardverskih komponenti, ili SCM-a (Software Configuration Management) u slučaju softverskih komponenti. Često se dešava da integracija pojedinih delova sistema, koji sačinjavaju gotov proizvod, zahteva integraciju informacije pod kontrolom PDM i SCM-a. To nije nimalo lako za izvođenje, kada su u pitanju informacije različitog formata, bez direktne podrške PDM i SCM alata. PDM (Project Data Management) je disciplina koja se odnosi na kontrolu proizvoda,podataka i procesa koji se koriste tokom celokupnog životnog ciklusa proizvoda. Kompanije u razvoju proizvodnje hardverskih proizvoda tradicionalno koriste PDM. SCM (Software Configuration Management) je disciplina koja obuhvata kontrolu evolucije softverskog proizvoda. Mnoge firme imaju ozbiljne probleme u integraciji informacije posebno kada njima upravljaju različiti alati iz različitih domena. Zašto je to tako? Postoje mnogi razlozi, tehnički i ne tehnički.Tehnički gledano, teško je na efikasan način vršiti prenos i skladištenje podataka između različitih sistema. Interoperativnost PDM i SCM-a mogu biti ključan faktor u efikasnom upravljanju ukupnih informacija o proizvodu.

3/23

Page 4: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

SCM (Software Configuration Management)

SCM je disciplina softverskog inženjerstva koja služi za kontrolu i upravljanje projektima i sinhronizaciju u radu različitih programera (developera) koji su učestvovali u projektu. SCM je projektovan da definiše metode i procese,pripremu plana i korišćenjem alata umnogome pomaže programerima ili projekt menadžerima u svakodnevnom radu u razvoju projekta. SCM je usmerena na podršku postepenog razvoja softvera. Iako se SCM koristi u svim fazama razvoja softvera, većina SCM aktivnosti je skoncentrisana na ranu fazu razvoja, kada je programski kod zapravo izrađen. Razvoj softverskog proizvoda je podeljen u tri dela:

Softver dizajner i programer (developer) kreiraju dokumentaciju i izrađuju izvorni kod Konstuktovanje softvera po sastavljanjem izvornog koda i mašinskog programa Proizvodnja i distribucija softvera (npr.CD)

Specifičnost softvera uključuje jednostavnost modifikacije, visoke troškove razvoja, male ili nikakve troškove proizvodnje, nedostatak konkretne arhitekture u svojoj konačnoj formi i visok stepen složenosti tokom faze razvoja.

Istorijat razvoja SCM-a počinje sa razvojem softvera. 60-tih godina XX veka softver je sačinjavao monolitni program implementiran u jedan izvorni modul i nije bilo potrebe za SCM-om. Softversko inženjerstvo je bilo fokusirano na proizvodnju efikasnih algoritama koji zauzimaju malo memorije. U 70-tim a posebno u 80-tim godinama softver postaje složeniji. Programi su izrađivani u dve faze, kompilacija (izvođenje binarnih modula iz izvornog koda) i povezivanje (kombinovanjem binarnih modula u programu tj. binarna biblioteka). Prva generacija SCM alata se pojavila u tom periodu:

Source code contol system (SCCS) koji obuhvata osnovne discipline SCM-a: CM (kontrolu upravljanja), razvijanje upravljanja i upravljanje verzijom.

Kasnije je na poboljšanim verzijama SCCS-a on zamenjen sa RCS (Revision contol system). U tom trenutku SCCS je bila usmerena na „glomazno programiranje“ (promena,obnova i sastav sitema). Zanimljivo je napomenuti da su ovi alati dominirali na SCM-u tržištu dugi niz godina i ti principi su i dalje uvedeni i koriste se u većini modernih alata. Danas se RCS nalazi u različitim oblicima (npr. imake,gnumake i u različitim projektnim datotekama) i on se koristi kao osnova za mnoge druge,napredne SCM alate. Tokom 90-tih godina fokus SCM-a je premešten na „mnogostruko programiranje“ sa naglaskom na timski rad (podrška procesa, istovremeni razvoj i simultano inženjerstvo u celini). Promena upravljanja, radnog prostora upravljanja i podrške procesa postaje novi model za SCM alate. Složenost SCM alata se povećava kako softver postaje složeniji. U tom periodu pojavljuje se nekoliko novih, složenih, skupih i naprednih SCM alata koje nije bilo lako uvesti u razvojni proces. Iz tog razloga,mnoge kompanije su tada razvijale sopstvene sisteme ili su koristeći jednostavne SCM alate izvršavale druge SCM procedure ručno.Upotreba SCM-a se značajno povećala tokom ovog perioda iz nekoliko razloga. Sa složenijim razvojem softvera pojavljuje se i potreba za alatima sposobnim za upravljanje ove složenosti. Istovremeno razvoj softvera postaje važan u poslovnim delatnostima i u mnogim novim softverskim kompanijama na tržištu. Konačno, razvoj softvera je fokusiran na razvoj procesa pod uticajem

4/23

Page 5: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Capability Maturity Model-a (CMM) iz Software Eingenering Instituta (SEI) koji je naglasio važnost SCM-a kao ključni proces u Software Eingenering-u.

Osnovne funkcije SCM alata

Za programere, SCM održava trenutne komponente proizvoda, čuva stare verzije i skladišti informacije o istoriji događaja, osigurava stabilan razvoj okruženja i koordinira simultanim promenama u proizvodu. Sa programerske tačke gledišta, gro ovog posla može biti olakšan uz korišćenje odgovarajućih alata. Naravno, definisani procesi i detaljne rutine mogu poslužiti programerima kao vodič kroz SCM. Međutim, da bi to bilo efikasno, neophodna je podrška alata. Najčešće podržane funkcije SCM alata su:

Version management – mogućnost skladištenja i memorisanja različitih varijanti i verzija dokumenata i njihovo naknadno popravljanje i poređenje

Configuration selection (izbor konfiguracije ) – pružanje funkcije izbora, kreiranja i pridruživanja verzija različitih dokumenata

Concurrent development (zajednički razvoj) – kontrolisanje simultanog pristupa više korisnika ( prevencija ili pružanje podrške)

Distributed development (distribuirani razvoj) – daje podršku programerima iz raznih krajeva sveta koji rade na istom sistemu

Build management – obezbeđuje mehanizme za izradu softvera (npr sastavljanje i povezivanje) i održava softver ažurnim (up to date), po mogućustvu bez nepotrebnog obnavljanja

Release management – pakovanje softvera u obliku pogodnom za distribuciju i kreiranje dokumentacije koja obaveštava korisnika i programera o naknadnim promenama u release proizvodu

Workspace management – obezbeđuje svakom korisniku privatni Sandbox u kome korisnik može raditi u izolaciji ali još uvek pod kontrolom SCM alata.

Change management – praćenje promena u proizvodu i pružanje podrške procesu ulaska i implementiranja promene u proizvodu

Integration with other tools (integracija sa ostalim alatima) – integracija SCM alata sa razvojnim okruženjem i drugim alatima

Specifična terminologija se često koristi u vezi sa nekim od ovih funkcija te je stoga uveden:

Reporting status (status izveštavnja) – izveštavanje o trenutnom statusu sa listom datoteka koje su promenjene u određenom vremenskom periodu, po kome su nastale promene i razlike u proizvodu.

Process support (podrška procesa) – podrška dostupna programerima u praćenju razvojnog modela i obavljanju specifičnih radnji tokom određenog stepena razvoja planiranja, kako bi osigurali napredovanje komponenti kroz odabrane faze životnog ciklusa pre izdavanja proizvoda.

Accessibility control (security) (kontrola pristupačnosti) – sprečava nepouzdan i neproveren pristup informacijama bez ometanja svakodnevnog rada.

5/23

Page 6: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Version management

Version management je glavna osnovna funkcionalnost u svim SCM alatima. Mnogi programeri veruju da je version management ekvivalentan sa SCM-om,što nije tačno. Element softvera ili dokumenta stavljen pod kontrolu verzije je određen kao konfiguracioni deo (configuration item – CI) . Najčešći primer CI je datoteka izvornog koda ali CI pripadaju i izvršne datoteke, dokumenti i proizvodi. Sposobnost skladištenja, oporavka i pamćenja istorijskog razvoja CI, osnovna je karakteristika jednog SCM sistema. Najvažnija osobina verziranja je njena nepromenjivost (immutability) – tj kada je verzija zamrznuta njen sadržaj se ne može menjati. Umesto toga kreira se nova verzija. Svi SCM sistemi pružaju podršku za usklađivanje istovremenih simultanih promena u CI od strane različitih korisnika. U zavisnosti od alata, ta podrška se pruža na različite načine prema različitim modelima sinhronizacije. U većini osnovnih modela se nalazi checkout/checkin model u kojem su pojedine datoteke skladištene u kompaktnom obliku, na osnovu kontrole verzije, u malim bazama podataka. Skladišta sadrže samo jednu kompletnu verziju. Razlike između verzija su sačuvane korišćenjem modela delta algoritama (tj algoritama pomoću kojih je moguće rekreirati potpunu verziju datoteke kroz analizu sačuvanih razlika). Mnogi alati koriste princip zasnovan na modelu delta algoritmama, izračunavanjem razlika između dve različite verzije. Postoji i binarni model delta algoritama koji izračunava binarne razlike, bajt po bajt. Glavna svrha korišćenja delta tehnike je da se sačuva prostor u skladištu. Direktan rad sa datotekama (čitanje,promena) u skladištu vrši se sa checkout. Checkout znači da se određene verzije datoteke kopiraju u developerş working directory, piše se pristup ako je potrebno i datoteka se zaključa u skladištu. Zaključavanje sprečava druge programere da vide u checkout-u da li je datoteka u write modu. Kad je datoteka checkin, nova verzija datoteke je kreirana i otključana u skladištu. Na taj način, svaka datoteka u skladištu će imati svoju sopstvenu verziju istorije sa novom verzijom za svaki checkout i checkin.Verzije datoteke mogu biti organizovane na nekoliko različitih načina. Datoteke organizovane u rednim razvojnim linijama nazivaju se revisions. Datoteke organizovane u paralelnim razvojnim linijama nazivaju se branches. Grane mogu biti pridužene u novu verziju, koje onda imaju dva ili više prethodnika prikazanih na sledećoj slici

Revisions (izmena,korekcija) je namerno stvorio developer (npr kada developer izvrši određenu promenu u datoteci) . Osim toga, mnogi tekstualni editori održavaju jednu ili više mikro verzija datoteke olakšavajući njen oporavak posle neuspešnog uređivanja. Ove izmene nisu nadgledane od strane SCM alata.Branches (grane) su stvorene iz nekoliko razloga. Primarna grana je nepromenljiva i ona podešava datoteke prema divergentnim zahtevima, kao što su različiti operativni sistemi ili windows sistemi.Drugi važan cilj je omogućiti paralelan rad grana istovremeno. Grana se sastoji od niza verzija i

6/23

Page 7: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

dodatnih grana koje mogu biti kreirane od originalne grane. Razvoj strategije za stvaranje i spajanje grana je često važan zadatak za SCM menadžera.Alat za kontrolu verzije može identifikovati internu kontrolu, obično koristeći numerološku tehniku u nekoliko faza. Osim toga, korisnici mogu sami napraviti izmene jednog ili više opcionalnih imena u formi teksta, često nazivanu kao tag ili label. Alat može vratiti verziju identifikovanu kao tekst. Ova mogućnost (tagging – označavanje) se koristi za realizaciju selekcije jednostavnog mehanizma.

Variants

Upravljanje varijantama je težak problem koji još nije u potpunosti rešen. Najveći problem je kako povući paralelu između varijante i grane. Prilagođavanje celog proizvoda ili konfiguracije prema divergentnim zahtevima se odnosi na upravljanje varijantama. Na primer, različite varijante proizvoda mogu biti razvijane za različite operativne sisteme za različito prihvatanje kupaca. Ove varijante mogu biti kreirane i održavane u najmanje četiri načina:

1. Za glavnu granu izabranih datoteka – Varijanta verzije datoteke izabrana je iz glavne grane kreirana za tu svrhu.Sledeća izabrana varijanta verzije datoteke je kroz nezavisnu granu. Ako ova grana ne postoji, verzija datoteke može biti izabrana iz glavne grane. U ovom slučaju glavna grana odnosi se na sve varijante

2. Za uslovljeno spajanje (sastavljanje direktiva) – To znači da su sve varijante upravljanja usmerene na istu verziju datoteke. Međutim varijanta upravljanja neće biti vidljiva za SCM

3. Za instalaciju opisi znanja funkcionalnosti trebalo bi biti uključeni u određenu varijantu – Varijanta zavisna od funkcionalnosti implementira se u različitim datotekama, po jedna za svaku varijantu.

4. Run-time check

Dakle stvaranje grane je samo jedan od načina za implementaciju varijante.

Workspace management

Workspace management omogućava programerima da rade transparentno u odnosu na SCM. Kada su programeri fokusirani na rešavanje posebnih problema i zbog toga zapostavljaju ili posvećuju manje interesovanja za administrativne poslove, a radni prostor u kome oni mogu da rade samostalno funkcioniše kao izdvojeni, na raspolaganju im stoje SCM alati. Verzije datoteka se proveravaju i privremeno skladište u radnom prostoru (workspace) sa raspoloživim mapiranjem između uskladištenog verziranog objekta i korisničkih datoteka i direktorijuma u radnom prostoru (workspace).Datoteke koje se modifikuju nisu jedini objekti koji se proveravaju u radnom prostoru. Sve datoteke potrebne u izradi ili u testu postupka, ili one koje su delovi proizvoda se proveravaju (eventualno, neke od njih su samo za čitanje). Dakle, radni prostor omogućava proveravanje datoteka u zajedničkom skladištu, održava određeni stepen kvaliteta datoteka (da sve datoteke promena rade zajedno bez obzira na zahtev za njihovu promenu).Kada više programera istovremeno rade, u svojim radnim okruženjima, na istom objektu, potrebna je kontrola između različitih kopija tog objekta. Primer integrisane funkcije je kada je programer “ulogovan” (log in) u projekat okruženja u kome su projekat konstrukcije i skladište već pripremljeni za programera (npr. kod SCM grupa). Programer

7/23

Page 8: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

zatim ulazi u transparentno okruženje koje je razvijano u pozadinskoj podršci SCM-a. Alati koji podržavaju workspace management su Clear Case kroz “Views” i CM Synergy (bivši Continuus).

Configuration selection

Kao što je prikazano na prethodnoj slici svaka datoteka može sadržati svoj broj verzije. Međutim, dešava se da ona datoteka koja bi trebala biti korištena u datoj situaciji nije uvek vidljiva. Situacija je dodatno komplikovana zbog činjenice da se sistem sastoji od velikog broja dokumenata, tako da je broj mogućih kombinacija ogroman. U svakodnevnom radu tokom razvoja, programer želi da ima najnoviju verziju promena datoteka počevši od određene grane. Za preostale nepromenjene datoteke, programer obično želi da ima stariju stabilniju verziju, koja je uključena u puštanje najnovijeg proizvoda ili zadnju stabilnu verziju objavljenu u drugim programerskim grupama. Razvoj u sopstvenim programerskim grupama treba da je posebno fleksibilan u različitim nivoima saradnje pri pravljenju neke promene. Na primer, promena može zahtevati modifikaciju više od jedne datoteke. U svim situacijama, usklađen izbor uključivanja verzije sa povezanim izmenama trebao bi biti osiguran. Skup određenih verzija datoteka (posebne verzije CI) definišu konfiguraciju.Korisna tehnika za specifikaciju konfiguracije zasniva se na pravilno odabiranoj proceduri. Tipični primeri pravila koja se mogu navesti kao prednosti uključuju:

Najnoviju reviziju sopstvene grane ( za datoteke koje rade u sopstvenim grupama) Najnoviju reviziju imenovanu u privremenoj grani (za datoteke koje rade u drugim grupama) Najnoviju reviziju imenovanu u stalnoj grani (za datoteke koje se razlikuju u zavisnosti od

proizvoda) Fiksnu, imenovanu verziju (npr. najnovije izdanje za druge podsisteme)

Na isti način na koji pojedinačne datoteke poseduju verziju istorije koja opisuje njihovu evoluciju, tako i konfiguracija kreira sopstvenu verziju istorije svog nastanka. Korisnici i kupci vide razvoj sistema samo u velikim koracima,tj. samo konfiguraciju i verziju koja je isporučena, dok programeri i projekt menadžeri posmatraju mnogo više nivoa u razvoju sistema, podele na podsisteme i konfiguracije, svaki pojedninačno za svoju verziju istorije. Imenovanje verzije (tagging) može se koristiti u upravljanju povezanih konfiguracija u kojoj su sve datoteke u konfiguraciji označene istim imenom, prikazano je na sledećoj slici

vezane konfiguracije mogu se definisati označavanjem svih datoteka istom oznakom

8/23

Page 9: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Odnos između takvih konfiguracija (npr. da je 2.3 isporučen a njegov naslednik isporučivanja 2.2) retko su podržani u SCM alatima jer moraju da se upravljaju na drugačiji način (npr. release document). Usklađeno imenovanje takođe se može koristiti u predstavljanju logičke izmene (npr. promene koje proizilaze iz zahteva promene i rezultiraju izmeni nekoliko datoteka).

Build management

Build management podržava korisnika u izradi proizvoda ili nekog dela proizvoda (npr. komponenta ili biblioteka). Build alat kao što je Make se koristi za automatsku izradu proizvoda. Prvo se prikuplja ispravna verzija odgovarajuće datoteke za određenu izradu, a zatim se pravilnim redosledom povezivuju i sastavljaju. Make opisuje zavisnost vremena izrade izvornog koda datoteke i osigurava njegovu izradu po pravilnom redosledu. Kako izgradnja velikih sistema može potrajati dugo i pri neefikasnom procesu previše oduzimati vremena programerima, važno je da se komponente, koje su korištene u izmeni, ponovo uzimaju u izradi što je moguće više. To je naročito važno u vreme testiranja i interacije, kad ceo sistem mora biti izrađen i testiran za male promene. Izrada efikasnog procesa može značajno smanjiti vreme, ponovnim korištenjem pojedinačne komponente iz prethodne izrade. Mnogi SCM alati su razvili dodatne ideje iz alata Make. Izrade postupka se automatski kreiraju u alatima i skladište u datoteci projekta izvedenoj u razvojnom okruženju.

Release management

Release management određuje identifikaciju i organizaciju svih isporučenih delova (dokumenti, biblioteke, izvršne) izrađenog proizvoda. Release management je usko povezana sa izborom konfiguracije (configuration selection), izradom upravljanja (build management), uređivanjem i upravljanjem (change management).Release management ima dvostruku ulogu. Prvo, mora pripremiti isporučen proizvod i svu dokumentaciju za korisnika. Informacije koje isporučeni proizvod sadrži uključuju spisak (novih) funkcija, implementirane promene iz prethodne izrade i zahtev za vreme izvođenja okruženja (run-time environment). Drugo, priprema i obezbeđuje podatke koji se interno koriste za potrebe testiranja, održavanja i daljeg razvoja. Na primer, release podrška omogućuje praćenje korisnika i njihovo korišćenje razvojnih verzija i komponenata, koji utiču na određivanje promene.

Distributed development

Razvojni softverski sistem je geografski daleko rasprostranjena delatnost. Ona obuhvata distribuciju razvoja ili udaljeni razvoj. Mnogi SCM alati pružaju kopirano skladište koje podržava proces udaljenog razvoja. Nema globalnih gospodara skladišta u većini alata koji podržavaju kopiranje, ali sve kopije istog skladišta se sihronizovano i automatski čuvaju. Kada je kopija modifikovana od korisnika na jednom mestu, ispravke se šalju na drugu kopiju (kao paket komandi na prethodno definisanom mestu). Kada se prvi put podaci kopiraju između različitih servera, oni moraju biti uskladišteni u sent/copied modu.Podaci mogu biti veličine i do nekoliko gigabajta. Sledeći put sinhronizacija kopiranja se odvija samo update-om od nekoliko megabajta koja treba da bude poslata u zajedničko skladište.Implementacije moraju izbegavati konflikte kako bi sinhronizacija bila potpuno automatizovana. U Clear Case alatu,na primer, problem sinhronizacije je ostavljen korisnicima na upravljanje u različitim granama i na različitim lokacijama. Samo držanje vlastite lokacije može stvoriti više verzija na toj grani. Na taj način uvek je moguće slati nove verzije izrađene na grani i instalirati ih na druge lokacije

9/23

Page 10: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

bez konflikta. Verzije grane sa druge strane i dalje mogu biti pregledane i korištene za spajanje verzija na grani vlasnika lokacije.

Concurrent development

Jedna od velikih prednosti korišćenja SCM sistema je u omogućavanju istovremenog rada nekoliko timova na jednom projektu. Različiti programeri mogu istovremeno da rade na istom objektu (dokumentu,datoteci) na ispravljanju različitih grešaka, ili jedan programer može raditi na najnovijem izdanju dok drugi ispravlja grešku u prethodnom izdanju. Prikaz u kome test timovi mogu testirati najnoviju stabilnu verziju kao razvojni tim u odnosu na prethodnu nestabilnu, prikazana je na slici

SCM sistem ovo omugućava pružanjem: Izbora izrade verzije specifične konfiguracije za različite potrebe Modela za sinhronizaciju istovremene promene (npr. po zaključavanju datoteke omogućena je

ispravka promene u svakom trenutku, otkrivanjem konflikta putem check in modela i kasnijim spajanjem putem check out modela)

10/23

Page 11: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

programeri istovremeno koriste različite konfiguracije

Change management

Change management vodi evidenciju o svim promenama proizvoda u razvoju. Razlog za promenu može biti korekcija greške, poboljšanje komponente ili dodavanje nove funkcionalnosti. Change management često podržava nekoliko različitih alata integrisanih u glavni SCM alat. Primeri takvih alata su PVCS Tracker, Visual Intercept i Rational ClearQuest. Change management ima dva cilja. Prvi je da pruži podršku za obradu promene. Takva obrada uključuje promenu identifikacije, analizu, dodelu prioriteta, planiranje za njihovu implementaciju, odluku za njihovo odbijanje i odlaganje i odluku za njihovu integraciju u izdanju novog proizvoda. Drugi cilj je njihova pratljivost (traceability) tj. mogućnost kreiranja liste svih aktivnih i implemntirajućih promena. Takođe bi trebalo pratiti modifikaciju različitih objekata zbog specifičnih promena.

11/23

Page 12: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Change management process

U change management process-u promene se obično identifikuju sa promenom zahteva (CR). Kada je promena pokrenuta, kreira se CR koji prati sve promene dok one ne budu rešene i zatvorene. Slika pokazuje kako promena predloga kreira CR.

Change Control Board (CCB) – je grupa odgovorna za operativne aspekte projekta, analizira i određuje CR akcije koje treba preduzeti. Kada je promena odobrena, izgled CR-a se kreira i pomaže programeru koji je odgovoran za implementiranje promena. Posle izvršenih promena od strane programera, njen status postaje implentiran i spreman za testiranje. CCB takođe odlučuje koje će promene biti uvrštene u novu verziju proizvoda, ili koje će promene biti uvrštene u postojeću verziju proizvoda u obliku servisnog paketa.

primer CR procesa

Traceability

Change management uključuje alate i procese koji podržavaju organizaciju i praćenje porekla promena na izvornom kodu. Kod svakog CR, je moguće videti zahtev zbog kojeg su izmenjene verzije datoteke. Isto tako ono bi trebalo dati odgovor na pitanje : ”zbog kog razloga (CR) je stvorio ovu verziju datoteke? ”

12/23

Page 13: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

kroz CR dokumenat može se lako videti koje su datoteke promenjene (verizije koja je stvorena) na osnovu CR-a.

Change management data može se koristiti za prikaz vrednih podataka koji učestvuju u naprednom projektu. Iz ovih podataka se mogu videti promene koje su uvedene između dva verzije. Takođe može se proveriti vreme odziva između inicijalizacije CR-a i njegove implementacije i prihvatljivosti. Slika prikazuje unos svih CR-a jednog dela release dokumenta koji se implementira između dve verzije. Takođe se prikazuje jedan od ovih zahteva i promenu datoteke zbog tog zahteva.

13/23

Page 14: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Integration with other tools

14/23

Page 15: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Prve generacije komercijalnih alata SCM-a, iako pružaju sofisticirane fukcionalnosti, otežano se implementiraju i integrišu u razvojnom procesu. U novim verzijama SCM alata pokušaj minimiziranja ovog dodatnog napora zahteva integraciju sa alatima koji se koriste u razvojnom procesu. Tipično, neke od funkcija su izrađene u integrisanom razvoju okruženja (IDE). Na primer, check in i check out se automatski izvode prilikom promene neke datoteke ili objekta. Slično tome, kod izrade softverskog proizvoda ili komponente, sve datoteke potrebne u izradi postupka se automatski proveravaju (check out). Razni SCM alati pružaju različite mogućnosti integracije. Mnogi alati pružaju niz line naredbi koje se mogu pozivati iz drugih alata pomoću različitih mehanizama koji su objedinjeno pokrenuti. Ovo nije visok stepen integracije, jer zavisi od sposobnosti alata, što može biti ograničenje drugim alatima za pozivanje naredbi. Fleksibilnije i snažnije interakcije se mogu postići pomoću interfejs namenskih programa (API) koje podržavaju SCM alati. Svaki API definiše skup interfejsa za SCM alate. Svaki razvojni tim ili razvojna organizacija može da izradi svoje aplikacije intefejsa podrškom SCM alata. U nekim slučajevima, isporučioci IDE određuju interfejs osnovnih SCM funkcija. SCM isporučioci zatim implementiraju ove fukcije u skladu sa specifikacijom interfejsa, i na taj način omogućuju integraciju sa IDE alatima. Korisnici koji koriste iste IDE alate mogu izabrati različite SCM alate i koristiti ih zajedno sa IDE alatima.Integracija SCM i drugih alata je daleko od savršene zbog različitog tretmana osnovne strukture. SCM datoteke prepoznaje kao celine, te u nekim slučajevima su u stanju da prepoznaju njihovu internu strukturu. To omogućava pružanje funkcije razlikovanja ili spajanja između različitih verzija tih entiteta. Na primer,svi SCM alati mogu upravljati običnim razlikama tekstualnih datoteka, koji se zasnivaju na razlikama linija u datotekama. Međutim SCM alati ne razumeju semantiku (tj. značenje) linija u datoteci. Razvoj i inženjering alata mogu imati potpuno različitu strukturu. Mnoge SCM funkcije za opšte namene mogu biti uključene u drugim alatima. Mnogi alati izrađuju sopstvene SCM funkcije, npr CAD/CAM sistemi (word processor) mogu sačuvati i upravljati različitim verzijama dokumenata. Kako ti alati poznaju internu strukturu takvih dokumenata, oni mogu da omoguće spajanje različitih funkcija na semntičkom nivou. Word processor je u stanju da prikaže formatiranje dve različite verzije dokumenata ili promenu pozicije između dva paragrafa. Iako su u ovom aspektu superiorniji od SCM alata, ovi alati mogu da sadrže neke osnovne SCM funkcije na celokupnom nivou. Međutim ovi alati nisu u stanju definisati konfiguraciju seta dokumenata po određenoj specifikaciji nekog dokumenta. Iz tog razloga oni ne mogu zameniti SCM alate.

Commercial SCM tools (Komercijalni SCM alati)

Postoji širok raspon komercijalnih alata, od onih jednostavnih (namenjen za male sisteme i za razvoj grupe), do onih koji pokrivaju potrebe velikih sistema i preduzeća. Neki od komercijalnih SCM alata objašnjeni su u sledećim rečenicama.

15/23

Page 16: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

AllFusion Harvest Change Manager

AllFusion Harvest Change Manager alat obezbeđuje sveobuhvatnu integrisanu promenu osnovnog skladišta i CM rešenja za upravljanje složenim enterprisewide razvojnim aktivnostima. AllFusion Harvest Change Manager alat je pisan da obezbedi sredstva za praćenje i promenu softvera i da upravlja u procesu razvoja aplikacija u distribuiranom okruženju. Ovaj alat je najbolji za srednje veličine projekta sa dobro definisanim razvojnim procesom.Glavne funkcije AllFusion Harvest Change Manager alata su sledeće:

Process-driven (integriše promenu menadžmen a i CM-a) Alat pomaže u kreiranju i modifikovanju modela razvojnog procesa (by automating workflows), kao što su obaveštenja, odobrenja i promene migracije iz jedne u drugu fazu.

Problem management (problem upravljanja) – može biti automatizovan i povezan da prati promene service pack-a, koje daju informacije koje se odnose na specifičnu promenu istorije događaja a koji se odvijaju unutar razvojnog procesa.

Application development tools integration (primena integracije razvojnih alata) Ova funkcija je omogućena putem svoje otvorene arhitekture, prilagođavanjem opcija i podrška standarda za izvorni kod Mikrosoftove kontrole interfejsa (SCCI standard)

(Upravljanje i izveštavanje metrike sposobnosti) Različiti izveštaji pružaju podatke iz skladišta koji mogu biti izrađeni pomoću Virtual Basic-a ili Java Scripte.

Invertory management (menadžment zaliha) Ova funkcija omogućava autorizovanost korisnika sa statusom informacije koje se odnose na bilo koji aktivan softver u celoj organizaciji – ko, šta, zašto, kada i gde.

Automated build management (automatsko upravljanje izradom) Alat uključuje izradu automatizovanog upravljanja kroz Openmake facility, koji je integrisan u alat i u različite IDE.

Change management i CM pruža podršku u upravljanju životnog ciklusa softverskog proizvoda kombinovanjem kooperativnih objekata (npr. sistemi i procesi). Promena procesa zasniva se na unapređivanju promene paketa (skup promena) a ne na pojedinačne datoteke. Slika pokazuje jedan primer mogućnosti definisanja procesa, uključujući i nekoliko projekata deljenja zajedničkih delova i sistema u kojima su međusobno zavisni.

Rational ClearCase

Rational ClearCase je jedan od vodećih SCM alata za podršku razvoja softvera i održavanju životnog ciklusa. To je alat za veće organizacije koje mogu imati puno prednosti od pružanja SCM-a kontrole nad svim sredstvima u stvaranju i održavanju procesa. Alat se sastoji od nekoliko proizvoda koji pokrivaju različite faze i aspekte životnog ciklusa softvera i postepeno pružaju povećanje podrške od malih i srednjih razvojnih organizacija do velikih distribuiranih projektnih poduhvata.

16/23

Page 17: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Rational Clear Case pokriva osnovne SCM funkcije: upravljanje verzija, CM, menadžment promena i izrada podrške. Rational ClearCase LT (light version) namenjen je manjim razvojnim projektima.

Rational ClearCase MultiSite je proizvod opcija uključen u Rational ClearCase. Komponenta racionalno integrisanog rešenja za upravljanje promenama, omogućuje paralelni razvoj timova sa različitih geografskih prostora.

Rational ClearQuest je kvar promene praćenja sistema koji beleži i upravlja svim tipovima CR-a tokom životnog ciklusa.

Porodica ClearCase proizvoda je u velikoj meri integrisana sa drugim Rational alatima i podržava Rational Unified Change Management (UCM). UCM definiše aktivnost koja se zasniva na procesu upravljanja promena koje timovi mogu primeniti u svojim razvojnim projektima, od specifikacije zahteva i dizajna kroz implementaciju i isporuku. Ona dozvoljava upravljanje promenama na višem nivou, u smislu aktivnosti i komponenti. Sa UCM-om, aktivnost je automatski povezana sa promenom seta, koja enkapsulira pojedine verzije projekta artifakata koji se koriste za implementaciju aktivnosti.ClearCase je vrlo moćno sredstvo za dobijanje nepromenjivog pogleda na verziju upravljanja i CM. Kod pristupa verzirane datoteke, programeri se služe unapred definisanim pogledom kako bi dobili odabrani filter za pristupanje određenoj verziji, datoteci, fascikli ili bilo kojoj drugoj vrsti kontrole verzije objekta. U svakodnevnom radu, programeri vide radne strukture kao obični sistem datoteka, ali oni zapravo direktno rade u skladištu. Skladište (repository), koje je drugačije od većine SCM alata, je verzija upravljanja sistemom datoteka koja se spaja u ’programerskom’ standardnom sistemu datoteka. Pravila za pružanje pogleda (view) pregledanja su slikovita i sastoje se od skupa kombinacija jednostavnih pravila, kao što su radna verzija, najnovija verzija, pojedinog BL-a i pojedinih grana. Proširena podrška distribuiranog razvoja je predviđena u multisite opcijama sa primarnom ulogom sinhronizacije skladišta. Sinhronizacija je ostvariva na nivou verzije objekta, odnosno na nivou grana objekata. Različite stranice mogu biti određene kao vlasnici različitih grana. Stranica može generisati nove verzije datoteke u određenoj grani, koje se mogu isčitati i u drugim granama. Grane su sinhronizovane na određenoj frekvenciji. Sjedinjavanje procesa u granama mora s obavljati ručno. Primer na slici pokazuje dve stranice, gde stranica A može proveravati novu verziju datoteke u glavnoj grani, a stranici B je dozvoljeno ažuriranje bugfix grane. Grane se periodično kopiraju . Na primer samo stranica A se može iskopirati iz različitih grana i stvoriti novu verziju u glavnoj grani.

17/23

Page 18: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

ClearCase je integrisan u mnogim IDE. On takođe uključuje Micorsoft SCCI, pa prema tome može se integrisati sa drugim alatima koji podržavaju interfejs. ClearCase sadrži jednostavnu skriptu koja manipuliše objektima u kontroli verzije. Skripte se aktiviraju na pojedine događaje i radnje od strane korisnika ili ih ClearCase sam može startovati. ClearCase je jedan od retkih SCM alata koji obezbeđuju rešenja za integraciju sa PDM alatima.

CM Synergy

CM Synergy (ranije poznat kao Continuus) upravlja objektima kao što su izvorni kod, binarne datoteke, fascikle ili dokumenti. Svi objekti se pod kontrolom verzija čuvaju na isti način kao i u PDM sistemima u srazmeri sa bazama podataka i sistemskim datotekama. Da bi se datoteke modifikovale, potrebno ih je prvo proveriti u lokalnom sistemu datoteka.Telelogic Synergy obuhvata sledeće alate:

CM Synergy je promena upravljanja softverom koji se koristi za razvoj i održavanje softvera i sistema. Ovaj alat omogućuje distribuciju skladišta i podršku za team-oriented workflow pristup razvojnih timova različitih veličina.

Change Synergy promena zahteva za praćenje i izveštavanje sistema koji upravlja procesom menadžmenta promene zahteva

CMSynergy Distributed Change Management koristi se u menadžmentu daljinskog upravljanja i distribuiranja promena. DCM omogućava zajednički rad geografski rasprostranjenih razvojnih timova.

CM Synergy ObjectMake obezbeđuje izradu sposobnosti upravljanja Project Synergy for Microsoft Project omogućava upravljanje projektom uz veću vidljivost

aktivnosti u projektu,tačnije rasporeda projektaZa integraciju sa drugim alatima CM Synergy koristi Microsoft SCCI. To omogućava integraciju sa različitim IDE alatima kao što su PowerBuilder, Microsoft(R) Visual C++, Visual Cafe, VisualAge for Java, and Visual Basic. Active CM plug in omogućuje automatsko izvršavanje SCM naredbi praćenjem razvoja okruženja i puštanje SCM aktivnosti koje su predviđene za programera.CM Synergy može odrediti životni ciklus modela za razvojni proces definisanja workflows-a pomoću stanja objekata i aktivnosti. Različiti ciklusi mogu se definisati za različite vrste objekata (nor za

18/23

Page 19: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

izvorni kod životni ciklus modela definiše rad sistema, integracija, testiranje, SQA). Skripte jezika se koriste za modelovanje životnog ciklusa.Procesi modela mogu se svrstati u dve kategorije:

1. Object-based models – ova kategorija modela identifikuje različite vrste objekata i životni ciklus modela za svaki pojedinačni tip. To je jednostavno dodavanje novih tipova objekata i novi ciklus života za njih.

2. Task-based process models – ovaj model je orijentisan na zadatke. Objekti mogu biti povezani sa zadacima. Radnja se primenjuje na propagiran zadatak povezan sa svim objektima. Na primer, ako je zadatak checked out, sve datoteke povezane sa ovim zadatkom biće checked out.

Alat podržava paralelni razvoj i on razlikuje tri različite vrste istovremenog razvoja: istovremeni razvoj objekata (concurrent development of objects), razvoj varijanti za izradu (development of variant releases) i razvoj paralelne isporuke (development of parallel releases). Distribuirani razvoj podržava Distributed Change Management koji upravlja sinhronizacijom skladišta. Celokupno skladište, objekti i pojedine strukture mogu biti sinhronizovani. Objekti se ažuriraju preko višestrukih web stranica koristeći se sledećim metodama:

Object replication – glavna stranica (master site) je odgovorna za sve promene u jednom objektu,dok se druge stranice mogu koristiti kao objekat

Concurrent development – sve stranice rade na istom objektu, te postoje dva pristupa za deljenje objekta: hub and spoke (u kojem se određenoj stranici pridodaje master version na kojoj su sve ostale verzije sinhronizovane) i peer to peer (u kojem su sve verzije sinhronizovane)

a) object replcation b) hub and spoke c) peer to peer

MERANT PVCS

Merant PVCS proizvodi pokrivaju SCM funkcije i fokusiraju se na slične aktivnosti u drugim domenima, posebno u upravljanju promena web sadržaja (WCM ) i u upravljanju promena aplikacija (ACM) korporativnog pakovanja aplikacija Oracle sistema. PVCS je porodica sledećih proizvoda:

19/23

Page 20: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

PVCS Professional - je jedinstven naziv za SCM koji obuhvata PVCS Version Manager, PVCS Tracker i PVCS Configuration Builder.

PVCS Version Manager - organizuje, upravlja, štiti softversku strukturu tokom revizije i promoviše saradnju tima. PVCS Version Manager je integrisan u brojne alate i razvojna okruženja.

PVCS Tracker - beleži i upravlja promenama u smislu pitanja i zadataka, pružajući osnovnu kontrolu procesa radi obezbeđivanja koordinacije i komunikacije unutar globalnih razvojnih timova.

PVCS Configuration Builder - osigurava da se aplikacija može pouzdano granati na izvodljiv način, obezbeđujući korišćenje komponenti iz iste verzije.

PVCS Dimensions - integriše SCM funkcije prema definiciji procesa automatskog upravljanja workflow-a i promene implementacije. Upotrebljava se za veće projekte.

Merant Collage - je životni ciklus web toolset-a koji upravlja infrastrukturom web sajta i kombinuje ga sa zadacima upravljanja i workflow.

PVCS Change Manager for Oracle - ubrzava usvajanje prilagođenog razvoja i nadogradnje i novih izdanja iz familije Oracle proizvoda.

PVCS Dimensions ima više naprednih mogućnosti za izradu, isporuku i proces upravljanja. On se oslanja na jednu metabazu skladišta i integriše sve upravljačke funkcije u jednom sistemu. PVCS Dimensions manages upravlja svim oblastima SCM-a i objektima, komponentama, ulogama i procesima, uključujući i sprovođenje workflow koraka, kontrolnih tačaka i odobrenja. PVCS Tracker je veza između razvojnog procesa i korisničkih zahteva.Upotrebljava se za upisivanje funkcija zahteva, kvara izveštaja, povratne informacije klijentu, pitanja generalnog projekta, zadatke, akcione stavke i odgovornosti.

saradnja PVCS alata

PVCS alati su namenjeni srednjim projekima.Oni podržavaju razvoj i distribuciju paralelnih procesa. PVCS uključuje WebDAV funkcije koje omogućavaju pristup strukturi datoteke preko interneta.

Microsoft Visual Source Safe

Microsoft Visual Source Safe je alat za upravljanje verzijom osnovne konfiguracije funkcionalnosti. Glavna funkcija VSS je njena dobra integracija u Visual Studio. Za razliku od ostalih SCM alata VSS nije orijentisana na datoteku već na projekat. Verzija za upravljanje se obavlja unutar okvira projekta.

20/23

Page 21: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Paralelni razvoj i verziranje datoteke se dobija na projektnom nivou, a ne na nivou datoteke. VSS iako spada u low-level klasi SCM alata, vrlo je popularan jer je isporučen sa MS Visual Studiom.Glavne funkcij VSS-a su:

praktičan alat za indivudalnu primenu programerima ili manjim grupama nema dodatnih troškova prilikom korišćenja Visual Studi-a pošto je integrisan u njemu. lagan start za neiskusne SCM programere i korisnike mnogo alata na tržištu je usvojilo VSS i izradilo dodatne funkcije ( kao što su change

management i distribution development)

List of SCM commercial tools

Process-Based CM Tools

SCM Tool Web Site

AccuRev—AccuRev/CM www.accurev.com

AccuRev/Dispatch www.accurev.com

Intasoft—Allchange www.intasoft.net,

Computer Associates—CCC/Harvest www.cai.com

Serena www.serena.com

Rational—ClearCase www.rational.com

ExpertWare—CMVision www.cmvision.com

Merant—Dimensions www.merant.com

Softlab—Enabler www.softlab.com

Visible Systems—Razor www.razor.visible.com

McCabe & Associates, Inc. www.mccabe.com

21/23

Page 22: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

SCM Tool Web Site

TRUEchange www.mccabe.com

Telelogic Synergy www.telelogic.com

Prosoft—Xstream www.prosoftcm.com

CM and Version Control Tools

SCM Tool Web Site

+1 Software Engineering, +1CM—Solaris www.plus-one.com

AccuRev—AccuRev/CM www.accurev.com

Sequel UK—Alchemist www.sequeluk.com

BitMover, Inc. www.bitmover.com/bitkeeper

Aldon www.aldon.com

Industrial Strength Software ChangeMaster www.industrial-strength.com

Reliable Software www.relisoft.com

Agile Software Corp www.agilesoft.com

Collabnet, SourceCast www.collab.net

NCI www.nci-sw.com

ComponentSoftware, CS-RCS—Windows www.ComponentSoftware.com

22/23

Page 23: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

SCM Tool Web Site

Data Services—ECMS www.configdata.com/w002product.htm

Lockheed Martin www.lockheedmartin.com

Quality Software components www.qsc.co.uk

JavaSoft, JavaSafe www.javasoft.com

JSSL—Librarian www.winlib.com

Tesseract—Life cycle Manager www.tesseract.co.za

British Aerospace—LifeSpan www.lifespan.co.uk

Realcase—Multi-Platform www.realcase.com

Perforce Software—Perforce Fast SCM System www.perforce.com

Data Design Systems—PrimeCode www.datadesign.com

Merant—PVCS www.merant.com

Synergex—PVCS www.synergex.com

Qumasoft—QVCS—Windows www.qumasoft.com

Inroads Technology—Rapid www.inroadstech.com

Ultracomp—Red Box www.ultracomp.co.uk

Software Ever After www.s-e-a.com.au

Lucent Technologies—Sablime HP, NCR, SUN www.bell-labs.com

MKS, Source Integrity www.mks.com

SourceGear—SourceOffSite www.sourceoffsite.com

23/23

Page 24: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

SCM Tool Web Site

SiberLogic – SourceTrack www.siberlogic.com

Giant Technologies, Visual SourceMail www.giant-technologies.com

Microsoft Visual SourceSafe msdn.microsoft.ssafe

Mainsoft Corporation—Visual SourceSafe on Unix www.mainsoft.com

Starbase Corporation—StarTeam www.starbase.com

Interwoven—TeamSite www.interwoven.com

SoftLanding SystemsTurnOver www.softlanding.com

Burton Systems—TLIB www.burtonsys.com

George James Software—VC/m www.georgejames.com

UNI Software Plus, VOODOO www.unisoft.co.at/Home.html

Sun—Forte TeamWare www.sun.com/forte/teamware

Freeware SCM tools

Osim komercijalnih SCM alata postoji i veliki broj besplatnih SCM alata. Dva najpoznatija SCM alata koja dominiraju na slobodnom tržištu su: RCS i CVS

RCS

RCS je jedan od najstarijih SCM alata. Vrlo je jednostavan i sadrži elementarne SCM funkcije primenjene na datoteke. Jednostavnost RCS-a je izvanredna a to je razlog za njegovog rasprostranjenog korišćenja. RCS se takođe koristi kao osnovni alat za mnoge druge SCM alate. Čak šta više zanimljivo je to da se uvedeni principi RCS-a (a delimično i prethodnog SCCS-a) još uvek primenjuju u ostalim, naprednijim SCM alatima. RCS datoteka je orijentisana i SCM skladište je jednostavno verzionisan direktorijum koji sadrži datoteke. Jedna verzionisana datoteka sadrži jednu ili više verzije te datoteke.

24/23

Page 25: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

Osnovni dokumenat (baselines) se dobija označavanjem određenih verzija datoteka. RCS uključuje razlike i spajanje funkcija, koje mogu biti korišćene od strane korisnika naredbama check in i check out.Glavne funkcije RCS-a su:

sadrži osnovne SCM funkcije (check in, check out, baseline, difference i merge) SCM skladište je inherentni RCS direktorijum jednostavan i lak za korišćenje praktičan za individualna korišćenja ili za male grupe može koristiti za izradu više sofisticiranih alata

CVS

CVS koristi RCS kao osnovni SCM alat. Za razliku od RCS-a, on upravlja strukturom direktorijuma. Sve datoteke u strukturnom direktorijumu stabla se mogu proveriti da li su sinhronizovane sa radnom verzijom datoteke. CVS direktno podržava multiusers projects, jer koristi klijent-server arhitekturu u TCP/IP vezama koje se koriste za klijent-server komunikaciju. Postoji mnogo CVS klijenata na primer, WinCVS (www.wincvs.org), jCVS (www.jcvs.org), command-line interfaces i emacs commands. Na isti način kao i RCS, CVS je rasprostranjen alat zbog svoje jednostavnosti i fleksibilnosti.Glavne funkcije CVS alata su:

sadrži osnovne SCM funkcije (check in, check out, baseline, difference i merge) to je klijent-server aplikacija u kojima server upravlja datotekama u skladištu omogućava paralelan razvoj za istovremenu promenu datoteke uključuje monitoring datoteka-operacija (npr. hceck in check out) na određenoj datoteci koju

obaveštava korisnika jednostavan i efikasan praktičan za rad u malim grupama

List of free SCM tools

SCM Tool Free Software

SCM Tool Web Site

Aegis http://aegis.sourceforge.net

CERN—CMZ www.info.cern.ch/cmz

CVS www.cvshome.org

DVS www.cs.colorado.edu/serl/cm/dvs.html

25/23

Page 26: 8.Alati Za Upravljanje Softverskom Konfiguracijom

alati za upravljanje softverskom konfiguracijom Boris Tikvenjac ITA/08

SCM Tool Web Site

Inversion inversion.tigris.org

JCVS www.jcvs.org

Keep-It www.keep-it.com

ODE www.accurev.com/ode/index.html

PRCS http://prcs.sourceforge.net

RCS www.gnu.org/software/rcs/rcs.html

SCCS (free implementations) www.cvshome.org/cyclic/cyclic-pages/sccs.html

TCCS www.oreilly.com/homepages/tccs

TkCVS www.twobarleycorns.net/tkcvs.html

26/23