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.

Exempelvis:

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.