Upravljanje konfiguracijom softvera u softverskom inženjerstvu
Što je upravljanje konfiguracijom softvera?
U softverskom inženjerstvu, Upravljanje konfiguracijom softvera (SCM) je proces za sustavno upravljanje, organiziranje i kontrolu promjena u dokumentima, kodovima i drugim entitetima tijekom životnog ciklusa razvoja softvera. Primarni cilj je povećati produktivnost uz minimalne pogreške. SCM je dio međudisciplinarnog područja upravljanja konfiguracijom i može točno odrediti tko je napravio koju reviziju.
Zašto nam je potrebno upravljanje konfiguracijom?
Primarni razlozi za implementaciju sustava upravljanja tehničkom konfiguracijom softvera su:
- Više ljudi radi na softveru koji se neprestano ažurira
- Može biti slučaj kada je više verzija, ogranaka, autora uključeno u projekt konfiguracije softvera, a tim je geografski raspoređen i radi istovremeno
- Promjene u zahtjevima korisnika, politici, proračunu, rasporedu moraju se prilagoditi.
- Softver bi trebao moći raditi na različitim strojevima i Operating sustavi
- Pomaže u razvoju koordinacije među dionicima
- SCM proces također je koristan za kontrolu troškova uključenih u izmjene sustava
Svaka promjena stavki konfiguracije softvera utjecat će na konačni proizvod. Stoga je potrebno kontrolirati i upravljati promjenama konfiguracijskih stavki.
Zadaci u SCM procesu
- Identifikacija konfiguracije
- Polazne crte
- Promijeni kontrolu
- Računovodstvo statusa konfiguracije
- Revizije konfiguracije i Reviews
Identifikacija konfiguracije
Identifikacija konfiguracije je metoda određivanja opsega softverskog sustava. Uz pomoć ovog koraka možete upravljati ili kontrolirati nešto čak i ako ne znate što je to. To je opis koji sadrži CSCI vrstu (stavku konfiguracije računalnog softvera), identifikator projekta i informacije o verziji.
Aktivnosti tijekom ovog procesa:
- Identifikacija konfiguracijskih stavki poput modula izvornog koda, testni slučaj, i specifikacija zahtjeva.
- Identifikacija svakog CSCI u SCM repozitoriju, korištenjem objektno orijentiranog pristupa
- Proces počinje s osnovnim objektima koji su grupirani u skupne objekte. Pojedinosti o tome što, zašto, kada i tko je napravio promjene u testu
- Svaki objekt ima vlastite značajke koje identificiraju njegovo ime koje je eksplicitno svim drugim objektima
- Popis potrebnih resursa kao što su dokument, datoteka, alati itd.
Primjer:
Umjesto naziva datoteke login.php, treba je nazvati login_v1.2.php gdje v1.2 označava broj verzije datoteke
Umjesto naziva mape "Code" treba je nazvati "Code_D" gdje D predstavlja kod koji se treba svakodnevno sigurnosno kopirati.
Osnovni
Osnovna linija je formalno prihvaćena verzija softverske konfiguracijske stavke. Određen je i fiksiran u određeno vrijeme tijekom provođenja SCM procesa. Može se promijeniti samo kroz formalne postupke kontrole promjena.
Aktivnosti tijekom ovog procesa:
- Olakšati izradu različitih verzija aplikacije
- Definiranje i određivanje mehanizama za upravljanje različitim verzijama ovih proizvoda rada
- Funkcionalna osnovna linija odgovara pregledanim zahtjevima sustava
- Često korištene osnove uključuju funkcionalne, razvojne i proizvodne osnove
Jednostavnim riječima, osnovna linija znači spreman za puštanje.
Promijeni kontrolu
Kontrola promjena je proceduralna metoda koja osigurava kvalitetu i dosljednost kada se promjene naprave u konfiguracijskom objektu. U ovom koraku, zahtjev za promjenu se podnosi upravitelju konfiguracije softvera.
Aktivnosti tijekom ovog procesa:
- Kontrolirajte ad-hoc promjene za izgradnju stabilnog okruženja za razvoj softvera. Promjene su predane repozitoriju
- Zahtjev će se provjeriti na temelju tehničkih prednosti, mogućih nuspojava i ukupnog utjecaja na druge konfiguracijske objekte.
- Upravlja promjenama i stavlja konfiguracijske stavke na raspolaganje tijekom životnog ciklusa softvera
Računovodstvo statusa konfiguracije
Računovodstvo statusa konfiguracije prati svako izdanje tijekom SCM procesa. Ova faza uključuje praćenje onoga što svaka verzija ima i promjena koje dovode do te verzije.
Aktivnosti tijekom ovog procesa:
- Vodi evidenciju o svim promjenama učinjenim na prethodnoj osnovnoj liniji da bi se dosegla nova osnovna linija
- Identificirajte sve stavke za definiranje konfiguracije softvera
- Pratite status zahtjeva za promjenama
- Potpuni popis svih promjena od zadnje osnovne linije
- Omogućuje praćenje napretka do sljedeće osnovne vrijednosti
- Omogućuje provjeru prethodnih izdanja/verzija koje se izdvajaju za testiranje
Revizije konfiguracije i Reviews
Revizije konfiguracije softvera potvrđuju da svi softverski proizvodi zadovoljavaju osnovne potrebe. Osigurava da je ono što je izgrađeno ono što je isporučeno.
Aktivnosti tijekom ovog procesa:
- Reviziju konfiguracije provode revizori provjeravajući slijede li se definirani procesi i osiguravajući da su ciljevi SCM-a zadovoljeni.
- Za provjeru sukladnosti sa standardima kontrole konfiguracije. revizija i izvješćivanje o učinjenim promjenama
- SCM revizije također osiguravaju održavanje sljedivosti tijekom procesa.
- Osigurava da su promjene napravljene na osnovnoj liniji u skladu s izvješćima o statusu konfiguracije
- Validacija potpunosti i dosljednosti
Sudionik SCM procesa
Slijede ključni sudionici SCM-a
1. Upravitelj konfiguracije
- Upravitelj konfiguracije je voditelj koji je odgovoran za identifikaciju konfiguracijskih stavki.
- CM osigurava da tim slijedi SCM proces
- On/ona mora odobriti ili odbiti zahtjeve za promjenama
2. Programer
- Programer treba promijeniti kod prema standardnim razvojnim aktivnostima ili zahtjevima za promjenu. On je odgovoran za održavanje konfiguracije koda.
- Programer bi trebao provjeriti promjene i riješiti sukobe
3. Revizor
- Revizor je odgovoran za SCM revizije i preglede.
- Potrebno je osigurati dosljednost i potpunost izdanja.
4. Voditelj projekta:
- Osigurajte da je proizvod razvijen unutar određenog vremenskog okvira
- Prati napredak razvoja i prepoznaje probleme u SCM procesu
- Generirajte izvješća o statusu softverskog sustava
- Pobrinite se da se poštuju procesi i pravila za stvaranje, mijenjanje i testiranje
5. Korisnik
Krajnji korisnik trebao bi razumjeti ključne uvjete SCM-a kako bi osigurao da ima najnoviju verziju softvera
Plan upravljanja konfiguracijom softvera
Planiranje procesa SCMP (planiranje upravljanja konfiguracijom softvera) počinje u ranim fazama kodiranja projekta. Ishod faze planiranja je SCM plan koji se može proširiti ili revidirati tijekom projekta.
- SCMP može slijediti javni standard poput IEEE 828 ili standard specifične za organizaciju
- Definira vrste dokumenata za upravljanje i imenovanje dokumenta. Primjer Test_v1
- SCMP definira osobu koja će biti odgovorna za cijeli SCM proces i izradu polaznih linija.
- Ispravite pravila za upravljanje verzijama i kontrolu promjena
- Definirajte alate koji se mogu koristiti tijekom SCM procesa
- Baza podataka za upravljanje konfiguracijom za snimanje informacija o konfiguraciji.
Alati za upravljanje konfiguracijom softvera
Svaki softver za upravljanje promjenama trebao bi imati sljedeće 3 ključne značajke:
Upravljanje istovremenošću:
Kada se dva ili više zadataka odvijaju u isto vrijeme, to je poznato kao istovremeni rad. Konkurencija u kontekstu SCM-a znači da istu datoteku uređuje više osoba u isto vrijeme.
Ako se istovremenošću ne upravlja ispravno pomoću SCM alata, to može stvoriti mnogo hitnih problema.
Kontrola verzija:
SCM koristi metodu arhiviranja ili sprema svaku učinjenu promjenu u datoteku. Uz pomoć značajke arhiviranja ili spremanja, moguće je vratiti se na prethodnu verziju u slučaju problema.
Synckronizacija:
Korisnici mogu preuzeti više od jedne datoteke ili cijelu kopiju repozitorija. Korisnik zatim radi na potrebnoj datoteci i provjerava promjene natrag u repozitorij. Oni mogu sinkronizirati svoju lokalnu kopiju kako bi ostali ažurirani s promjenama koje su napravili drugi članovi tima.
Slijede popularni alati
1.Git: Git je besplatan alat otvorenog koda koji pomaže u kontroli verzija. Dizajniran je za brzu i učinkovitu obradu svih vrsta projekata.
Preuzmite link: https://git-scm.com/
2. tim Foundation Server: Tim Foundation je skupina alata i tehnologija koje timu omogućuju suradnju i koordinaciju za izradu proizvoda.
Preuzmite link: https://azure.microsoft.com/en-us/services/devops/server/
3.Ansibl: To je alat za upravljanje konfiguracijom softvera otvorenog koda. Osim upravljanja konfiguracijom također nudi implementaciju aplikacija i automatizaciju zadataka.
Preuzmite link: https://www.ansible.com/
Provjerite više alata za konfiguraciju softvera: https://www.guru99.com/software-configuration-management-tools.html
Zaključak
- Najbolje prakse upravljanja konfiguracijom pomažu organizacijama da sustavno upravljaju, organiziraju i kontroliraju promjene u dokumentima, kodovima i drugim entitetima tijekom Životni ciklus razvoja softvera.
- Primarni cilj SCM procesa je povećati produktivnost uz minimalne pogreške
- Glavni razlog za proces upravljanja konfiguracijom je taj što više ljudi radi na softveru koji se neprestano ažurira. SCM pomaže uspostaviti konkurentnost, sinkronizaciju i kontrolu verzija.
- Osnovna linija je formalno prihvaćena verzija softverske konfiguracijske stavke
- Kontrola promjena je proceduralna metoda koja osigurava kvalitetu i dosljednost kada se promjene naprave u konfiguracijskom objektu.
- Računovodstvo statusa konfiguracije prati svako izdanje tijekom SCM procesa
- Revizije konfiguracije softvera potvrđuju da svi softverski proizvodi zadovoljavaju osnovne potrebe
- Voditelj projekta, upravitelj konfiguracije, programer, revizor i korisnik su sudionici SCM procesa
- Planiranje SCM procesa počinje u ranim fazama projekta.
- Git, Team Foundation Sever i Ansible nekoliko su popularnih SCM alata.