You are on page 1of 10

Upravljanje softverskom konfiguracijom

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.

Alati za razumijevanje programa i obrnuti inženjering

Razumijevanje programa provodi se s ciljem razumijevanja izvornog koda,


dokumentacije i dizajna, odnosno uključuje znanje o tome što i kako program radi,
gdje će se u sustavu vršiti izmjene te kako te izmjene utjecati na rad programa.
Obrnuti inženjering je proces analize postojećeg sustava u svrhu identificiranja
sistemskih komponenti, njihovih međusobnih odnosa te prikaza sustava u drugom
obliku ili na višem nivou apstrakcije. Odabir alata, koji podržava razumijevanje
programa, vrlo je važan u provedbi izmjena jer se mnogo vremena potroši za
proučavanje i razumijevanje programa. Alati za obrnuti inženjering također postižu
isti cilj. Alati se uglavnom sastoje od alata za vizualizaciju, koji pomažu programeru
u crtanju modela sustava. Primjeri alata za razumijevanja programa i za obrnuti
inženjering uključuju programski rezač (engl. program slicer), statički analizator
(engl. static analyzer), dinamički analizator (engl. dynamic analyzer), unakrsni
analizator (engl. crossreferencer) i analizator ovisnosti (engl. dependency
analyzer). Jedan od glavnih problema u održavanju softvera je suočavanje s
veličinom izvornog koda programa. Važno je da programeri mogu odabrati i
pregledati samo one dijelove programa na koje utječe predložena izmjena, a da ih
ne ometaju irelevantni dijelovi koda. Jedna tehnika koja pomaže s ovim
problemom poznata je kao rezanje - mehanički proces označavanja svih dijelova
teksta programa koji mogu utjecati na vrijednost varijable. Alat koji se koristi za
potporu rezanja poznat je kao programski rezač. Programski rezač također
prikazuje podatkovne veze i povezane značajke kako bi programer mogao pratiti
učinak promjena .

Statički analizator koristi se za analizu različitih aspekata programa, kao što su


moduli, procedure, varijable, podatkovni elementi, objekti i klase. Statički
analizator omogućuje

generiranje sažetaka sadržaja i korištenje odabranih elemenata programu, kao što


su varijable ili objekti. Pomoću dinamičkog analizatora prati se put izvršenja (engl.
execution path) sustava dok se program izvršava. Omogućuje djelatniku
održavanja da odredi puteve na koje će utjecati izmjena. Analizator protoka
podataka je alat za statičku analizu koji omogućuje praćenje svih mogućih tokova
podataka u programu što uvelike pomaže u opisu temeljne logike programa te u
prikazu odnosa komponenti sustava. Praćenjem toka podataka može se, na
primjer, odrediti gdje je varijabla poprimila svoju vrijednost i na koje sve dijelove
programa utječe modifikacija varijable . Unakrsnim analizatorom dobivaju se
informacije o korištenju programa. Ovaj alat, također, pomaže korisniku da se
usredotoči na dijelove programa na koje izmjena utječe. Analizator ovisnosti
pomaže u analiziranju i razumijevanju međusobnih odnosa između entiteta u
programu. Takav alat pruža mogućnost pretraživanja baze podataka o ovisnostima
u programu. Također pruža grafičke prikaze ovisnosti, gdje čvor predstavlja entitet
programa, a luk ovisnosti među entitetima .

Alati za podršku testiranja

Testiranje je najdugotrajniji i najzahtjevniji zadatak u održavanju softvera, stoga bi


ta aktivnost mogla imati najviše koristi od alata. Alat za simuliranje testova (engl.
test simulator tool) testira učinke izmjena u kontroliranom okruženju prije
implementacije izmjene na stvarnom sustavu. Ključna prednost ovog pristupa je
da djelatnik održavanja može isprobati učinak izmjene prije uvođenja izmjene na
stvarni operativni sustav. Nedostatak je što rezultati i opažanja mogu biti pogrešni
jer se neka ograničenja u stvarnom okruženju možda ne odražavaju u
kontroliranom okruženju . Generator testnog slučaja (engl. test case generator)
proizvodi testne podatke koji se koriste za testiranje funkcionalnosti modificiranog
sustava, dok generator testnih puteva (engl. test path
generator) pronalazisve tokove podataka i puteve kontrole toka koji su pod
utjecajem promjena.

Alati za upravljanje konfiguracijom


Upravljanje konfiguracijom (engl. configuration management) je organizirani skup
pravila, postupaka i alata kojima se kontrolira mijenjanje softvera i evidentiraju se
njegove različite verzije. Upravljanje konfiguracijom potrebno je kod velikih
sustava gdje postoji velik broj različitih verzija koje su istovremeno u razvoju ili u
upotrebi . Učinkovito upravljanje konfiguracijom nije moguće bez pomoći neke
vrste automatiziranih alata. Alati za upravljanje konfiguracijom i upravljanje
verzijama pomažu pri pohranjivanju objekata koji čine softverski sustav. Sustav
kontrole izvora koristi se za čuvanje povijesti datoteka, kako bi se mogle pratiti
verzije programa i kako bi programer mogao pratiti promjene datoteka.

Upravljanje softverskom konfiguracijom

SCM sistemi se temelje na jednostavnoj ideji: konačne kopije datoteka su


smeštene u centralno skladište. Korisnici proveravaju kopije datoteka iz skladišta,
rade na tim kopijama, a kada završe ponovo ih snimaju. SCM sistemi upravljaju i
prate izmene koje vrše korisnici.
Svi SCM sistemi obezbeđuju sledeće bitne osobine:
• Upravljanje konkurentnošću
• Verziranje
• Sinhronizacija

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.

Pojedini termini u SCM


Revizija: promene u datoteci ili skupu datoteka. Revizija je kao jedan snapshot u
projektu koji se stalno menja.
Skladište: mesto gde SVN smešta kompletnu istoriju revizija projekta. Svaki
projekat ima jedno skladište.
Radna kopija (eng.Working Copy): kopija u kojoj inženjer radi izmene na projektu.
Može postojati mnogo radnih kopija datog projekta kod svakog pojedinog
inženjera.
Check Out : Zahtev za radnom kopijom iz skladišta. Radna kopija pokazuje stanje
projekta kada je zahtevan.
Commit : Slanje izmene iz radne kopije u centralno skladište. Takođe poznat kao
check-in ili submit.
Update: “Donosi” druge promene iz skladišta na radnu kopiju inženjera, ili
označava “nevraćene” promene na radnoj kopiji. Ovo je slično sinhronizaciji.
Dakle, ažuriranje / sinhronizacija ažurira pojedinačnu radnu kopiju sa kopijama iz
skladišta.
Konflikt: Situacija kada dva inženjera pokušaju da izvrše izmene u istoj oblasti
datoteke. SVN označava konflikt, a inženjeri ih rešavaju.
Log message: Komentar koji se dodaje prilikom rada na reviziji i koji opisuje
urađene promene. Log daje pregled promena u projektu.

U sledećoj tabeli su prikazane i ostale Software Configuration Management alatke


koje se najčešće koriste:
Naziv Proizvođač
AccuRev AccuRev
AllFusion CA-Pan/LCM Configuration Manager Computer Associates
BitKeeper BitMover
Bugzilla Mozilla Corporation
Changelogic Webmedia
ClearCase IBM Rational Software
codebeamer Intland
Configuration Management Kit CM Planning Group
Fossil D. Richard Hipp
Mercurial Matt Mackall
MKS Source MKS
PVCS Professional Serena Software
Perforce Perforce Software
PureCM PureCM.com
Visible System's Razor Visible Software
Sablime Lucent Technologies
SharpForge XP Software Services
StarTeam Borland
Surround SCM Seapine
Synergy/CM Telelogic
Trac Edgewall Software
Vault Sourcegear
Visual Enabler Soft Lab
Visual Source Safe Microsoft
Visual Studio Team System Microsoft
Subversion Free Open Source Software

Popis najpopularnijih alata za upravljanje konfiguracijom softvera (Top SCM


Tools u 2021)
U softverskom inženjerstvu Upravljanje konfiguracijom softvera zadatak je
praćenja i upravljanja promjenama u softverskom dijelu šireg disciplinskog
područja upravljanja konfiguracijama.
SCM prakse uključuju kontrolu vida u uspostavljanju polaznih vrijednosti. Ako
nešto krene po zlu, SCM može utvrditi što je promijenjeno i tko je to promijenio.

Ciljevi upravljanja konfiguracijom softvera općenito su konfiguracija, identifikacija,


idiomi i polazne vrijednosti konfiguracije, kontrola konfiguracije, provedba
postupka promjene kontrole.
To se obično postiže postavljanjem ploče za kontrolu promjena čija je primarna
funkcija odobravanje ili odbijanje svih zahtjeva za promjenama koji se šalju u
odnosu na bilo koju osnovnu liniju. Računovodstvo statusa konfiguracije,
izvještavanje i bilježenje svih potrebnih informacija o statusu razvojnog procesa.

# 1) Server Configuration Monitor Solarwinds

Solarni vjetrovi pruža Monitor konfiguracije poslužitelja za otkrivanje neovlaštenih


promjena konfiguracije vaših poslužitelja i aplikacija. Pomoći će vam da postavite
osnovne konfiguracije poslužitelja i aplikacija na sustavima Windows i Linux.
Poboljšat će vidljivost i odgovornost timova i smanjiti vrijeme rješavanja
problema.
# 2) Cfengine configuration tool

CFEngine je alat za upravljanje konfiguracijom koji pruža konfiguraciju


automatizacije za ogromne računalne sustave, uključujući objedinjeno upravljanje
poslužiteljima, sustavima, korisnicima, ugrađenim umreženim uređajima,
mobilnim uređajima i sustavima.
# 3) Puppet configuration tool

Lutka je alat za upravljanje konfiguracijom softvera otvorenog koda. Koristi se za


postavljanje, konfiguriranje i upravljanje poslužiteljima. Koristi arhitekturu master-
slave.

# 4) Chef Configuration Tool

Kuhar je u osnovi platforma za automatizaciju koja pruža način konfiguriranja i


upravljanja infrastrukturom. Infrastruktura kao kod podrazumijeva izvršavanje
kodiranjem, a ne ručno izvršavanje. Glavni kuhar radi na Rubyu i DSL-u za pisanje
konfiguracija.
# 5) Responsible configuration tool

Ansible je najbolji alat za upravljanje konfiguracijom, implementaciju, orkestraciju


s otvorenim kodom, a također i mehanizam za automatizaciju.
To je konfiguracijski alat temeljen na push-u. Pomaže u automatizaciji cjelokupne
IT infrastrukture pružajući velike povećanja produktivnosti. Ansible se obično
povezuje putem SSH-a, udaljene PowerShell-e ili putem drugih udaljenih API-ja.
# 6) SaltStack configuration tool

SaltStack je također alat za konfiguraciju koji radi na modelu za postavljanje


glavnog klijenta ili necentraliziranom modelu. SaltStack se temelji na
programskom jeziku Python, SaltStack pruža push i SSH metode za komunikaciju s
klijentima. SaltStack omogućuje grupiranje klijenata i predloške za konfiguraciju
radi jednostavnog i lakog preuzimanja kontrole nad okolišem.

# 7) Configuration tool Juju

Juju je jedan od poznatih alata za upravljanje konfiguracijom koji je otvoren i


stvorio ga je Canonical Ltd.
Juju uglavnom naglašava smanjenje operativnih troškova softvera nove generacije
pružanjem usluga poput brzog postavljanja, konfiguriranja, skaliranja, integracije i
izvršavanja operativnih zadataka na velikom rasponu javnih i privatnih usluga u
oblaku, uz samo poslužitelje, otvorene hrpe i lokalni sustav bazirane
implementacije.
# 8) Rudder

Kormilo je jedno od najpoznatijih i najčešće korištenih rješenja, konfiguracija i


alata za upravljanje otvorenim izvorima, upravljanih mrežom, zasnovanih na
ulogama, za automatiziranu konfiguraciju sustava u velikim IT organizacijama i
usklađenost.
Kormilo ovisi o laganom lokalnom agentu koji je instaliran na svakom upravljanom
sustavu. Rudderovo web sučelje na strani poslužitelja izgrađeno je jezikom Scala, a
njegov lokalni agent napisan je na C jeziku.
# 9) Management of bamboo configuration

Bambus je jedan od Atlassovih kontinuiranih alata za upravljanje i isporuku.


Bambus nudi visoki standard podrške za redovitu dostavu. Bambus daje izlaz kao
jedan tok. Bamboo pruža programerima, testerima, inženjerima gradnje i
administratorima sustava zajednički zajednički prostor za rad i razmjenu
informacija pohranjujući osjetljive operacije poput implementacije proizvodnje i
sigurnosti.
# 10) TeamCity configuration tool

TeamCity je također jedan od poslužitelja za upravljanje i kontinuiranu integraciju


koji je razvio Jet Brains i zasnovan na Java programskom jeziku.
Objavljeno 2ndU listopadu TeamCity nudi do 100 konfiguracija gradnje (poslova) i
izvodi neograničene gradnje. Istodobno pokreće 3 agenta, a po potrebi i dodatna.
Posjeduje javni program za praćenje grešaka i forum otvoren za sve korisnike.
Otvoreni je izvor, pa je besplatan za sve korisnike.
# 11) Schedule of octopus

Octopus je jedan od poznatih alata za konfiguriranje koji vas vodi dalje od


ograničenja na mjestu na kojem završava vaš poslužitelj za kontinuiranu
integraciju.
Octopus Deploy vam pomaže omogućiti automatizaciju čak i za najsloženije
implementacije aplikacija, bez obzira je li aplikacija lokalna ili u oblaku, to neće
predstavljati problem

You might also like