U ovoj lekciji obrađivaćemo:
Termini i skraćenice u oblasti SCM, korišćene u ovoj lekciji:
Sistem može da se definiše kao kolekcija komponenti organizovanih u cilju ispunjavanja specifičnih funkcija ili skupa funkcija. Konfiguracija sistema je funkcionalna ili fizička karakteristika hardvera, softvera, upravljačkog softvera ili njihova kombinacija. Može se posmatrati i kao kolekcija specifičnih verzija hardvera, upravljačkog softvera, ili softverskih item-a kombinovanih prema specifično izgrađenim procedurama radi posebnih namena.
Konfiguracioni menadžment je disciplina identifikovanja konfiguracije sistema u različitim tačkama vremena u cilju sistematične kontrole promena u konfiguraciji i održavanja integriteta i praćenja konfiguracije kroz životni ciklus sistema. Prema Bersoff-u[1], CM se formalno definiše kao disciplina koja primenjuje tehnička i administrativna uputstva i posmatranja na identifikovanje i dokumentovanje funkcionalnih i fizičkih kakakteristika konfiguracionih stavki, kontrole promena na ovim karakteristikama, snimanje i izveštavanje o procesima promena i implementacionom statusu i verifikovanje saglasnosti sa postavljenim zahtevima.
Upravljanje softverskom konfiguracijom (Software Configuration Management (SCM)) je podrška životnom procesu razvoja softvera[2], koja donosi korist i pomaže u upravljanju projektima, razvojnim i aktivnostima održavanja, aktivnostima garancije, kao i potrošačima i korisnicima krajnjeg proizvoda.
Koncept konfiguracionog menadžmenta se primenjuje na sve stavke koje se kontrolišu, mada postoje izvesne razlike u implementaciji između hardverskog konfiguracionog menadžmenta i softverskog konfiguracionog menadžmenta.
SCM je tesno povezan sa aktivnošću obezbeđenja kvaliteta softvera (eng. Software Quality Assurance (SQA)). SQA proces obezbeđuje osiguranje da su softverski proizvodi i procesi u projektu životnog ciklusa u skladu sa njihovim navedenim zahtevima putem planiranja, primene i izvođenja skupa aktivnosti radi obezbeđenja adekvatne pouzdanosti da je kvalitet ugrađen u softver. SCM aktivnosti pomažu u postizanju ovih SQA ciljeva. U pojedinim slučajevima, specifični SQA zahtevi nalažu određene SCM aktivnosti.
Aktivnosti upravljanja softverskom konfiguracijom su:
Na slici je predstavljena stilizovana reprezentacija ovih aktivnosti:
Slika1. izvor: Guide to the SWEBOK
Oblast upravljanje softverskom konfiguracijom vezana je sa svim drugim oblastima, pošto su objekti konfiguracionog menadžmenta artifakti proizvedeni i korišćeni tokom procesa softverskog inženjerstva.
Na sledećoj slici je prikazana detaljna šema za upravljanje softverskom konfiguracijom, prema SWEBOK-u:
Slika2.izvor: Guide to the SWEBOK
SCM kontroliše evoluciju i integritet proizvoda putem identifikovanja njegovih elemenata, upravljanjem i kontrolisanjem promena, verifikovanjem, snimanjem i izveštavanjem o konfiguracionim informacijama. Iz perspektive softver inženjera SCM olakšava razvoj i promenu implementacionih aktivnosti. Uspešna SCM implementacija zahteva pažljivo planiranje i upravljanje. Sa druge strane, to zahteva razumevanje organizacionog konteksta, relacija između organizacionih elemenata i postavljenih ograničenja.
Radi planiranja SCM procesa za projekat, neophodno je razumeti organizacioni kontekst i relacije između organizacionih elemenata. SCM interreaguje sa nekoliko drugih aktivnosti ili organizacionih elemenata.
Organizacioni elementi odgovorni za procese podrške u softverskom inženjerstvu mogu biti raspoređeni na različite načine. Mada odgovornost za izvođenje određenog SCM procesa može biti dodeljena drugom delu organizacije, kao što je razvojna organizacija, ukupna odgovornost za SCM često spada u posebni organizacioni element ili na određenog pojedinca.
Softver se često razvija kao deo većeg sistema obuhvatajući na taj način i hardverske i softverske elemente. U tom slučaju, SCM aktivnosti se rade paralelno sa hadverskim CM i CM upravljačkog softvera, i mora biti konzistentan sa CM na sistemskom nivou. Buckley [3] opisuje SCM upravo u ovom kontekstu.
Najveća relacija SCM postoji upravo sa razvojem softvera i organizacijom održavanja. Upravo se unutar ovog konteksta sprovodi većina taskova kontrole softverske konfiguracije. Najčešče, iste alatke podržavaju razvoj, održavanje i SCM namene.
SCM proces se ne može posmatrati izolovano. Postoji više izvora za ograničenja i vođenja SCM procesa. Polise i procedure postavljene na korporativnom ili drugom organizacionom nivou mogu da utiču ili prepišu dizajn i implementaciju SCM procesa za dati projekat. Ugovor između naručioca i dobavljača može sadržati odredbe koje utiču na SCM proces. Na primer, određena revizija konfiguracije se mogu zahtevati ili može biti specificirano da se određeni delovi postave pod SCM.
Ograničenja mogu da dolaze i od strane spoljnih regulatornih tela, kao što je slučaj kod razvoja softvera koji utiče na javnu bezbednost. Konačno, i izabrani proces životnog ciklusa i alatke za implementaciju takođe utiču na dizajn i implementaciju SCM procesa [4].
Pravila za dizajniranje i implementciju SCM procesa mogu se dobiti i na osnovu najboljih praksi, kao što se navodi u standardima softverskog inženjerstva izdatih od različitih organizacija.
Reference: