Software Configuration Management i Software Engineering
โก Smart sammanfattning
Programvarukonfigurationshantering (SCM) รคr en process fรถr att systematiskt hantera, organisera och kontrollera รคndringar i dokument, kod och andra objekt under hela programvaruutvecklingens livscykel. Dess primรคra mรฅl รคr att รถka produktiviteten samtidigt somping misstag till ett minimum.

Vad รคr Software Configuration Management?
inom mjukvaruteknik, Programkonfigurationshantering (SCM) รคr en process fรถr att systematiskt hantera, organisera och kontrollera รคndringar 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 konfigurationshantering, och det kan exakt avgรถra vem som gjorde vilken revision.
Varfรถr behรถver vi konfigurationshantering?
De frรคmsta skรคlen till att implementera ett tekniskt system fรถr programvarukonfigurationshantering รคr:
- Det finns flera personer som arbetar med programvara som stรคndigt uppdateras.
- Det kan vara ett fall dรคr flera versioner, grenar och fรถrfattare รคr involverade i ett programkonfigurationsprojekt, och teamet รคr geografiskt distribuerat och arbetar samtidigt.
- Fรถrรคndringar i anvรคndarkrav, policy, budget och schema mรฅste beaktas.
- Programvaran ska kunna kรถras pรฅ olika maskiner och Operating Systems.
- Hjรคlper till att utveckla samordning mellan intressenter.
- SCM-processen รคr ocksรฅ fรถrdelaktig fรถr att kontrollera kostnaderna fรถr att gรถra systemรคndringar.
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 ett programvarusystem. 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 med hjรคlp av en objektorienterad metod.
- Processen bรถrjar med grundlรคggande objekt som grupperas i aggregerade objekt. Detaljer om vad, varfรถr, nรคr och av vem รคndringar i testet gรถrs.
- Varje objekt har sina egna egenskaper som identifierar dess namn, vilket รคr explicit fรถr alla andra objekt.
- Lista รถver resurser som krรคvs, sรฅsom dokument, fil, verktyg etc.
Exempel:
Istรคllet fรถr att dรถpa filen till login.php, bรถr den dรถpas till login_v1.2.php dรคr v1.2 stรฅr fรถr filens versionsnummer.
Istรคllet fรถr att namnge en mapp "Codeโ, borde den hetaโCode_Dโ dรคr D representerar att koden ska 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 konstruktionen av olika versioner av en applikation.
- Definiera och faststรคlla mekanismer fรถr att hantera olika versioner av dessa arbetsprodukter.
- Den funktionella baslinjen motsvarar de granskade systemkraven.
- Vanligt fรถrekommande baslinjer inkluderar funktionella, utvecklingsmรคssiga och produktmรคssiga baslinjer.
Med enkla ord betyder baslinje redo fรถr release.
รndra kontroll
รndringshantering รคr en procedurmรคssig metod som sรคkerstรคller kvalitet och konsekvens nรคr รคndringar gรถrs i konfigurationsobjektet. I detta steg skickas รคndringsbegรคran till programkonfigurationshanteraren.
Aktiviteter under denna process:
- Kontrollera ad hoc-รคndringar fรถr att bygga en stabil programvaruutvecklingsmiljรถ. รndringarna sparas i arkivet.
- Begรคran kommer att kontrolleras utifrรฅn tekniskt vรคrde, eventuella biverkningar och รถvergripande inverkan pรฅ andra konfigurationsobjekt.
- Den hanterar รคndringar och gรถr konfigurationsobjekt tillgรคngliga under programvarans livscykel.
Konfigurationsstatusredovisning
Redovisning av konfigurationsstatus tracks varje utgรฅva under SCM-processen. Detta steg involverar tracvad varje version har och de รคndringar som leder till denna version.
Aktiviteter under denna process:
- Hรฅller register รถver alla รคndringar som gjorts i den fรถregรฅende baslinjen fรถr att nรฅ en ny baslinje.
- Identifiera alla objekt fรถr att definiera programkonfigurationen.
- รvervaka status fรถr รคndringsfรถrfrรฅgningar.
- Fullstรคndig lista รถver alla รคndringar sedan senaste baslinjen.
- Tillรฅter trackung av framsteg till nรคsta baslinje.
- Tillรฅter att tidigare utgรฅvor/versioner existerartracted 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 efterlevnaden av konfigurationskontrollstandarder, granska och rapportera gjorda รคndringar.
- SCM-revisioner sรคkerstรคller ocksรฅ att traceffektiviteten bibehรฅlls under processens gรฅng.
- 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 de viktigaste deltagarna i SCM:
1. Configuration Manager
- Konfigurationshanteraren รคr den chef som ansvarar fรถr att identifiera konfigurationsobjekt.
- CM sรคkerstรคller att teamet fรถljer SCM-processen.
- Han/hon mรฅste godkรคnna eller avvisa รคndringsfรถrfrรฅgningar.
2. Utvecklare
- Utvecklaren behรถver รคndra koden enligt standardutvecklingsaktiviteter eller รคndringsfรถrfrรฅgningar. Hen ansvarar fรถr att underhรฅlla kodens konfiguration.
- Utvecklaren bรถr kontrollera รคndringarna och lรถsa konflikter.
3. Revisor
- Revisorn ansvarar fรถr SCM-revisioner och granskningar.
- Behรถver sรคkerstรคlla publiceringens konsekvens och fullstรคndighet.
4. Projektledare:
- Se till att produkten utvecklas inom en viss tidsram.
- รvervakar utvecklingsframstegen och identifierar problem i SCM-processen.
- Generera rapporter om programvarusystemets status.
- 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 hen har den senaste versionen av programvaran.
Programvarukonfigurationshanteringsplan
SCMP-processen (Software Configuration Management Planning) bรถrjar i de tidiga kodningsfaserna av ett projekt. Resultatet av planeringsfasen รคr SCM-planen, som kan utรถkas eller revideras under projektets gรฅng.
- SCMP kan fรถlja en offentlig standard som IEEE 828 eller en organisationsspecifik standard.
- Den definierar vilka typer av dokument som ska hanteras och en namngivningskonvention fรถr dokument. Exempel: Test_v1.
- SCMP definierar den person som kommer att ansvara fรถr hela SCM-processen och skapande av baslinjer.
- ร tgรคrda policyer fรถr versionshantering och รคndringskontroll.
- Definiera verktyg som kan anvรคndas under SCM-processen.
- Konfigurationshanteringsdatabas fรถr inspelning av konfigurationsinformation.
Programvarukonfigurationshanteringsverktyg
All programvara fรถr fรถrรคndringshantering bรถr ha fรถljande tre nyckelfunktioner:
Samtidighetshantering:
Nรคr tvรฅ eller flera uppgifter pรฅgรฅr samtidigt kallas det fรถr samtidig operation. Samtidighet i SCM-sammanhang betyder 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 en arkiveringsmetod eller sparar alla รคndringar som gรถrs i en fil. Med hjรคlp av arkiverings- eller sparfunktionen รคr det mรถjligt att รฅterstรคlla till den tidigare versionen om problem uppstรฅr.
Synchronisering:
Anvรคndare kan checka ut mer รคn en fil eller en hel kopia av arkivet. Anvรคndaren arbetar sedan med den fil som behรถvs och checkar in รคndringarna i arkivet. De kan synkronisera sin lokala kopia fรถr att hรฅlla sig uppdaterade 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 konfigurationshanteringsverktyg med รถppen kรคllkod. Fรถrutom konfigurationshantering erbjuder det รคven applikationsdistribution och uppgiftsautomatisering.
Ladda lรคnk: https://www.ansible.com/


