Software Configuration Management i Software Engineering

Vad รคr Software Configuration Management?

inom mjukvaruteknik, Software Configuration Management (SCM) รคr en process fรถr att systematiskt hantera, organisera och kontrollera รคndringarna i dokument, koder och andra enheter under programvaruutvecklingens livscykel. Det primรคra mรฅlet รคr att รถka produktiviteten med minimala misstag. SCM รคr en del av det tvรคrvetenskapliga omrรฅdet fรถr konfigurationshantering och det kan exakt bestรคmma vem som gjorde vilken revision.

Varfรถr behรถver vi konfigurationshantering?

De frรคmsta anledningarna till att implementera tekniskt programvarukonfigurationshanteringssystem รคr:

  • Det finns flera personer som arbetar med programvara som kontinuerligt uppdateras
  • Det kan vara ett fall dรคr flera versioner, grenar, fรถrfattare รคr involverade i ett programvarukonfigurationsprojekt och teamet รคr geografiskt fรถrdelat och arbetar samtidigt
  • Fรถrรคndringar i anvรคndarkrav, policy, budget, schema mรฅste tillgodoses.
  • Programvara ska kunna kรถras pรฅ olika maskiner och Operating Systems
  • Hjรคlper till att utveckla samordningen mellan intressenter
  • SCM-processen รคr ocksรฅ fรถrdelaktig fรถr att kontrollera kostnaderna fรถr att gรถra รคndringar i ett system

Behรถver Configuration Management

Alla รคndringar i programvarukonfigurationen kommer att pรฅverka den slutliga produkten. Dรคrfรถr mรฅste รคndringar av konfigurationsobjekt kontrolleras och hanteras.

Arbetsuppgifter i SCM-processen

  • Konfigurationsidentifiering
  • baslinjer
  • ร„ndra kontroll
  • Konfigurationsstatusredovisning
  • Konfigurationsrevisioner och Reviews

Konfigurationsidentifiering

Konfigurationsidentifiering รคr en metod fรถr att bestรคmma omfattningen av mjukvarusystemet. Med hjรคlp av detta steg kan du hantera eller kontrollera nรฅgot รคven om du inte vet vad det รคr. Det รคr en beskrivning som innehรฅller CSCI-typen (Computer Software Configuration Item), en projektidentifierare och versionsinformation.

Aktiviteter under denna process:

  • Identifiering av konfigurationsobjekt som kรคllkodsmoduler, testfall, och kravspecifikation.
  • Identifiering av varje CSCI i SCM-fรถrvaret, genom att anvรคnda ett objektorienterat tillvรคgagรฅngssรคtt
  • Processen bรถrjar med grundlรคggande objekt som grupperas i aggregerade objekt. Detaljer om vad, varfรถr, nรคr och av vem fรถrรคndringar i testet gรถrs
  • Varje objekt har sina egna funktioner som identifierar dess namn som รคr explicit fรถr alla andra objekt
  • Lista รถver resurser som krรคvs sรฅsom dokumentet, filen, verktyg etc.

Exempel:

Istรคllet fรถr att namnge en fil login.php bรถr den heta login_v1.2.php dรคr v1.2 stรฅr fรถr versionsnumret pรฅ filen

Istรคllet fรถr att namnge mappen "Code" bรถr den heta "Code_D" dรคr D representerar kod bรถr sรคkerhetskopieras dagligen.

Baslinje

En baslinje รคr en formellt accepterad version av ett programvarukonfigurationsobjekt. Det utses och fixeras vid en specifik tidpunkt medan SCM-processen genomfรถrs. Det kan endast รคndras genom formella fรถrรคndringskontrollprocedurer.

Aktiviteter under denna process:

  • Underlรคtta konstruktion av olika versioner av en applikation
  • Definiera och bestรคmma mekanismer fรถr att hantera olika versioner av dessa arbetsprodukter
  • Den funktionella baslinjen motsvarar de granskade systemkraven
  • Ofta anvรคnda baslinjer inkluderar funktionella, utvecklings- och produktbaslinjer

Med enkla ord betyder baslinje redo fรถr release.

ร„ndra kontroll

ร„ndringskontroll รคr en procedurmetod som sรคkerstรคller kvalitet och konsekvens nรคr รคndringar gรถrs i konfigurationsobjektet. I det hรคr steget skickas รคndringsbegรคran till programvarukonfigurationshanteraren.

Aktiviteter under denna process:

  • Kontrollera ad-hoc fรถrรคndringar fรถr att bygga en stabil mjukvaruutvecklingsmiljรถ. ร„ndringar รคr fรถrpliktade till arkivet
  • Begรคran kommer att kontrolleras baserat pรฅ tekniska fรถrdelar, mรถjliga biverkningar och รถvergripande pรฅverkan pรฅ andra konfigurationsobjekt.
  • Den hanterar รคndringar och gรถr konfigurationsobjekt tillgรคngliga under mjukvarans livscykel

Konfigurationsstatusredovisning

Konfigurationsstatusredovisning spรฅrar varje release under SCM-processen. Detta steg innebรคr att spรฅra vad varje version har och de รคndringar som leder till denna version.

Aktiviteter under denna process:

  • Hรฅller ett register รถver alla รคndringar som gjorts i fรถregรฅende baslinje fรถr att nรฅ en ny baslinje
  • Identifiera alla objekt fรถr att definiera mjukvarukonfigurationen
  • ร–vervaka status fรถr รคndringsfรถrfrรฅgningar
  • Komplett lista รถver alla รคndringar sedan den senaste baslinjen
  • Tillรฅter spรฅrning av framsteg till nรคsta baslinje
  • Tillรฅter att kontrollera tidigare utgรฅvor/versioner som ska extraheras fรถr testning

Konfigurationsrevisioner och Reviews

Programvarukonfigurationsrevisioner verifierar att all mjukvaruprodukt uppfyller baslinjebehoven. Det sรคkerstรคller att det som byggs รคr det som levereras.

Aktiviteter under denna process:

  • Konfigurationsrevision utfรถrs av revisorer genom att kontrollera att definierade processer fรถljs och sรคkerstรคlla att SCM-mรฅlen รคr uppfyllda.
  • Fรถr att verifiera รถverensstรคmmelse med konfigurationskontrollstandarder. revision och rapportering av gjorda รคndringar
  • SCM-revisioner sรคkerstรคller ocksรฅ att spรฅrbarheten upprรคtthรฅlls under processen.
  • Sรคkerstรคller att รคndringar som gรถrs i en baslinje รถverensstรคmmer med konfigurationsstatusrapporterna
  • Validering av fullstรคndighet och konsekvens

Deltagare i SCM-processen

Fรถljande รคr nyckeldeltagarna i SCM

Deltagare i SCM-processen

1. Configuration Manager

  • Configuration Manager รคr chefen som รคr ansvarig fรถr att identifiera konfigurationsobjekt.
  • CM sรคkerstรคller att teamet fรถljer SCM-processen
  • Han/hon mรฅste godkรคnna eller avslรฅ รคndringsfรถrfrรฅgningar

2. Utvecklare

  • Utvecklaren mรฅste รคndra koden enligt standardutvecklingsaktiviteter eller รคndringsfรถrfrรฅgningar. Han รคr ansvarig fรถr att upprรคtthรฅlla konfigurationen av koden.
  • Utvecklaren bรถr kontrollera รคndringarna och lรถsa konflikter

3. Revisor

  • Revisorn ansvarar fรถr SCM-revisioner och granskningar.
  • Behovet av att sรคkerstรคlla konsistensen och fullstรคndigheten av utgivningen.

4. Projektledare:

  • Se till att produkten utvecklas inom en viss tidsram
  • ร–vervakar utvecklingens framsteg och kรคnner igen problem i SCM-processen
  • Generera rapporter om status fรถr mjukvarusystemet
  • Se till att processer och policyer fรถljs fรถr att skapa, รคndra och testa

5. Anvรคndare

Slutanvรคndaren bรถr fรถrstรฅ de viktigaste SCM-termerna fรถr att sรคkerstรคlla att han har den senaste versionen av programvaran

Programvarukonfigurationshanteringsplan

Processplaneringen fรถr SCMP (Software Configuration Management Planning) bรถrjar i de tidiga kodningsfaserna av ett projekt. Resultatet av planeringsfasen รคr SCM-planen som kan fรถrlรคngas eller revideras under projektets gรฅng.

  • SCMP kan fรถlja en offentlig standard som IEEE 828 eller organisationsspecifik standard
  • Den definierar vilka typer av dokument som ska hanteras och ett dokumentnamn. Exempel Test_v1
  • SCMP definierar den person som kommer att ansvara fรถr hela SCM-processen och skapande av baslinjer.
  • Fixa policyer fรถr versionshantering och รคndringskontroll
  • Definiera verktyg som kan anvรคndas under SCM-processen
  • Konfigurationshanteringsdatabas fรถr inspelning av konfigurationsinformation.

Programvarukonfigurationshanteringsverktyg

Alla รคndringshanteringsprogram bรถr ha fรถljande tre nyckelfunktioner:

Samtidighetshantering:

Nรคr tvรฅ eller flera uppgifter pรฅgรฅr samtidigt kallas det fรถr samtidig drift. Samtidighet i sammanhanget till SCM innebรคr att samma fil redigeras av flera personer samtidigt.

Om samtidighet inte hanteras korrekt med SCM-verktyg kan det skapa mรฅnga akuta problem.

Versionskontroll:

SCM anvรคnder arkiveringsmetoden eller sparar varje รคndring som gรถrs i filen. Med hjรคlp av arkiverings- eller sparafunktionen รคr det mรถjligt att gรฅ tillbaka till den tidigare versionen vid problem.

Synchronisering:

Anvรคndare kan checka ut mer รคn en fil eller en hel kopia av fรถrvaret. Anvรคndaren arbetar sedan pรฅ den nรถdvรคndiga filen och checkar in รคndringarna tillbaka till fรถrvaret. De kan synkronisera sin lokala kopia fรถr att hรฅlla sig uppdaterad med รคndringar som gjorts av andra teammedlemmar.

Fรถljande รคr populรคra verktyg

1.Git: Git รคr ett gratis och รถppen kรคllkodsverktyg som hjรคlper till med versionskontroll. Den รคr designad fรถr att hantera alla typer av projekt med snabbhet och effektivitet.

Ladda lรคnk: https://git-scm.com/

2. Lag Foundation Server: Team Foundation รคr en grupp verktyg och teknologier som gรถr det mรถjligt fรถr teamet att samarbeta och koordinera fรถr att bygga en produkt.

Ladda lรคnk: https://azure.microsoft.com/en-us/services/devops/server/

3. Ansible: Det รคr ett verktyg fรถr hantering av programvara med รถppen kรคllkod. Fรถrutom konfigurationshantering erbjuder den ocksรฅ applikationsdistribution och uppgiftsautomatisering.

Ladda lรคnk: https://www.ansible.com/

Kontrollera fler SW-konfigurationsverktyg: https://www.guru99.com/software-configuration-management-tools.html

Slutsats

  • Configuration Management bรคsta praxis hjรคlper organisationer att systematiskt hantera, organisera och kontrollera รคndringarna i dokument, koder och andra enheter under Programvaruutveckling livscykel.
  • Det primรคra mรฅlet med SCM-processen รคr att รถka produktiviteten med minimala misstag
  • Den frรคmsta orsaken bakom konfigurationshanteringsprocessen รคr att det finns flera personer som arbetar med programvara som kontinuerligt uppdateras. SCM hjรคlper till att etablera samtidighet, synkronisering och versionskontroll.
  • En baslinje รคr en formellt accepterad version av ett programvarukonfigurationsobjekt
  • ร„ndringskontroll รคr en procedurmetod som sรคkerstรคller kvalitet och konsekvens nรคr รคndringar gรถrs i konfigurationsobjektet.
  • Konfigurationsstatusredovisning spรฅrar varje release under SCM-processen
  • Programvarukonfigurationsrevisioner verifierar att all mjukvaruprodukt uppfyller baslinjebehoven
  • Projektledare, konfigurationsansvarig, utvecklare, revisor och anvรคndare รคr deltagare i SCM-processen
  • SCM-processplaneringen bรถrjar i de tidiga faserna av ett projekt.
  • Git, Team foundation Sever och Ansible รคr nรฅgra populรคra SCM-verktyg.

Sammanfatta detta inlรคgg med: