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

Trebate upravljanje konfiguracijom

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

Sudionik SCM procesa

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.