Software Configuration Management i Software Engineering
Hvad er Software Configuration Management?
I Software Engineering, Software Configuration Management (SCM) er en proces til systematisk at styre, organisere og kontrollere รฆndringerne i dokumenter, koder og andre enheder i lรธbet af softwareudviklingens livscyklus. Det primรฆre mรฅl er at รธge produktiviteten med minimale fejl. SCM er en del af det tvรฆrfaglige omrรฅde for konfigurationsstyring, og det kan prรฆcist bestemme, hvem der har lavet hvilken revision.
Hvorfor har vi brug for konfigurationsstyring?
De primรฆre รฅrsager til at implementere teknisk softwarekonfigurationsstyringssystem er:
- Der er flere mennesker, der arbejder pรฅ software, som lรธbende opdateres
- Det kan vรฆre et tilfรฆlde, hvor flere versioner, grene, forfattere er involveret i et softwarekonfigurationsprojekt, og teamet er geografisk fordelt og arbejder samtidigt
- รndringer i brugerkrav, politik, budget, tidsplan skal imรธdekommes.
- Software skal kunne kรธre pรฅ forskellige maskiner og Operating Systemer
- Hjรฆlper med at udvikle koordinering mellem interessenter
- SCM-processen er ogsรฅ gavnlig til at kontrollere omkostningerne ved at foretage รฆndringer i et system
Enhver รฆndring i softwarekonfigurationselementerne vil pรฅvirke det endelige produkt. Derfor skal รฆndringer af konfigurationselementer kontrolleres og administreres.
Opgaver i SCM proces
- Konfigurationsidentifikation
- basislinjer
- Skift kontrol
- Konfiguration Status Accounting
- Konfigurationsrevisioner og Reviews
Konfigurationsidentifikation
Konfigurationsidentifikation er en metode til at bestemme omfanget af softwaresystemet. Ved hjรฆlp af dette trin kan du styre eller kontrollere noget, selvom du ikke ved, hvad det er. Det er en beskrivelse, der indeholder CSCI-typen (Computer Software Configuration Item), en projektidentifikator og versionsinformation.
Aktiviteter under denne proces:
- Identifikation af konfigurationselementer som kildekodemoduler, test sag, og kravspecifikation.
- Identifikation af hver CSCI i SCM-lageret ved at bruge en objektorienteret tilgang
- Processen starter med grundlรฆggende objekter, som er grupperet i aggregerede objekter. Detaljer om hvad, hvorfor, hvornรฅr og af hvem รฆndringer i testen foretages
- Hvert objekt har sine egne funktioner, der identificerer dets navn, der er eksplicit for alle andre objekter
- Liste over nรธdvendige ressourcer sรฅsom dokumentet, filen, vรฆrktรธjer osv.
Eksempel:
I stedet for at navngive en fil login.php skal den hedde login_v1.2.php hvor v1.2 stรฅr for versionsnummeret pรฅ filen
I stedet for at navngive mappen "Code" skal den hedde "Code_D", hvor D reprรฆsenterer kode, skal sikkerhedskopieres dagligt.
Baseline
En baseline er en formelt accepteret version af et softwarekonfigurationselement. Det er udpeget og fastsat pรฅ et bestemt tidspunkt, mens SCM-processen udfรธres. Det kan kun รฆndres gennem formelle รฆndringskontrolprocedurer.
Aktiviteter under denne proces:
- Lettere opbygning af forskellige versioner af en applikation
- Definere og bestemme mekanismer til styring af forskellige versioner af disse arbejdsprodukter
- Den funktionelle baseline svarer til de gennemgรฅede systemkrav
- Udbredte baselines omfatter funktionelle, udviklingsmรฆssige og produktbaselines
Med enkle ord betyder baseline klar til frigivelse.
Skift kontrol
รndringsstyring er en proceduremรฆssig metode, som sikrer kvalitet og konsistens, nรฅr der foretages รฆndringer i konfigurationsobjektet. I dette trin sendes รฆndringsanmodningen til softwarekonfigurationsadministratoren.
Aktiviteter under denne proces:
- Styr ad hoc-รฆndringer for at opbygge et stabilt softwareudviklingsmiljรธ. รndringer er forpligtet til depotet
- Anmodningen vil blive kontrolleret baseret pรฅ den tekniske vรฆrdi, mulige bivirkninger og overordnet indvirkning pรฅ andre konfigurationsobjekter.
- Den administrerer รฆndringer og gรธr konfigurationselementer tilgรฆngelige i lรธbet af softwarens livscyklus
Konfiguration Status Accounting
Konfigurationsstatusregnskab sporer hver udgivelse under SCM-processen. Denne fase involverer sporing af, hvad hver version har, og de รฆndringer, der fรธrer til denne version.
Aktiviteter under denne proces:
- Holder en fortegnelse over alle de รฆndringer, der er foretaget til den tidligere basislinje for at nรฅ en ny basislinje
- Identificer alle elementer for at definere softwarekonfigurationen
- Overvรฅg status for รฆndringsanmodninger
- Komplet liste over alle รฆndringer siden sidste basislinje
- Tillader sporing af fremskridt til nรฆste baseline
- Giver mulighed for at kontrollere tidligere udgivelser/versioner, der skal udpakkes til test
Konfigurationsrevisioner og Reviews
Softwarekonfigurationsaudits verificerer, at alt softwareproduktet opfylder basisbehovene. Det sikrer, at det, der bygges, er det, der leveres.
Aktiviteter under denne proces:
- Konfigurationsrevision udfรธres af revisorer ved at kontrollere, at definerede processer fรธlges og sikre, at SCM-mรฅlene er opfyldt.
- For at verificere overholdelse af konfigurationskontrolstandarder. revision og rapportering af de foretagne รฆndringer
- SCM-audits sikrer ogsรฅ, at sporbarheden opretholdes under processen.
- Sikrer, at รฆndringer foretaget i en baseline overholder konfigurationsstatusrapporterne
- Validering af fuldstรฆndighed og konsistens
Deltager i SCM proces
Fรธlgende er de vigtigste deltagere i SCM
1. Configuration Manager
- Configuration Manager er lederen, der er ansvarlig for at identificere konfigurationselementer.
- CM sikrer, at teamet fรธlger SCM-processen
- Han/hun skal godkende eller afvise รฆndringsanmodninger
2. Udvikler
- Udvikleren skal รฆndre koden i henhold til standardudviklingsaktiviteter eller รฆndringsanmodninger. Han er ansvarlig for at vedligeholde konfiguration af kode.
- Udvikleren bรธr kontrollere รฆndringerne og lรธse konflikter
3. Revisor
- Revisor er ansvarlig for SCM-revision og -gennemgang.
- Behov for at sikre konsistensen og fuldstรฆndigheden af โโfrigivelsen.
4. Projektleder:
- Sรธrg for, at produktet udvikles inden for en bestemt tidsramme
- Overvรฅger udviklingens fremskridt og genkender problemer i SCM-processen
- Generer rapporter om status for softwaresystemet
- Sรธrg for, at processer og politikker fรธlges ved oprettelse, รฆndring og testning
5. Bruger
Slutbrugeren bรธr forstรฅ de vigtigste SCM-udtryk for at sikre, at han har den seneste version af softwaren
Software Configuration Management Plan
SCMP-procesplanlรฆgningen (Software Configuration Management Planning) begynder i de tidlige kodningsfaser af et projekt. Resultatet af planlรฆgningsfasen er SCM-planen, som kan strรฆkkes eller revideres i lรธbet af projektet.
- SCMP kan fรธlge en offentlig standard som IEEE 828 eller organisationsspecifik standard
- Den definerer de typer dokumenter, der skal administreres, og en dokumentnavngivning. Eksempel Test_v1
- SCMP definerer den person, der vil vรฆre ansvarlig for hele SCM-processen og oprettelsen af โโbaselines.
- Ret politikker for versionsstyring og รฆndringskontrol
- Definer vรฆrktรธjer, der kan bruges under SCM-processen
- Konfigurationsstyringsdatabase til registrering af konfigurationsinformation.
Softwarekonfigurationsstyringsvรฆrktรธjer
Enhver รฆndringsstyringssoftware skal have fรธlgende 3 nรธglefunktioner:
Samtidig styring:
Nรฅr to eller flere opgaver foregรฅr pรฅ samme tid, kaldes det samtidig drift. Samtidighed i kontekst til SCM betyder, at den samme fil redigeres af flere personer pรฅ samme tid.
Hvis samtidighed ikke styres korrekt med SCM-vรฆrktรธjer, kan det skabe mange presserende problemer.
Versionskontrol:
SCM bruger arkiveringsmetode eller gemmer hver รฆndring, der er foretaget i filen. Ved hjรฆlp af arkiverings- eller gemmefunktion er det muligt at rulle tilbage til den tidligere version i tilfรฆlde af problemer.
Synchronisering:
Brugere kan tjekke mere end รฉn fil eller en hel kopi af depotet. Brugeren arbejder derefter pรฅ den nรธdvendige fil og tjekker รฆndringerne tilbage til lageret. De kan synkronisere deres lokale kopi for at holde sig opdateret med รฆndringerne foretaget af andre teammedlemmer.
Fรธlgende er populรฆre vรฆrktรธjer
1.Git: Git er et gratis og open source-vรฆrktรธj, som hjรฆlper med versionskontrol. Den er designet til at hรฅndtere alle typer projekter med hurtighed og effektivitet.
Hent link: https://git-scm.com/
2. hold Foundation Server: Team Foundation er en gruppe af vรฆrktรธjer og teknologier, der gรธr teamet i stand til at samarbejde og koordinere for at bygge et produkt.
3. Ansible: Det er et open source-softwarekonfigurationsstyringsvรฆrktรธj. Udover konfigurationsstyring tilbyder den ogsรฅ applikationsimplementering og opgaveautomatisering.
Hent link: https://www.ansible.com/
Tjek flere SW-konfigurationsvรฆrktรธjer: https://www.guru99.com/software-configuration-management-tools.html
Konklusion
- Configuration Management bedste praksis hjรฆlper organisationer med systematisk at administrere, organisere og kontrollere รฆndringerne i dokumenter, koder og andre enheder i lรธbet af Softwareudvikling livscyklus.
- Det primรฆre mรฅl med SCM-processen er at รธge produktiviteten med minimale fejl
- Hovedรฅrsagen bag konfigurationsstyringsprocessen er, at der er flere mennesker, der arbejder pรฅ software, som lรธbende opdateres. SCM hjรฆlper med at etablere samtidighed, synkronisering og versionskontrol.
- En baseline er en formelt accepteret version af et softwarekonfigurationselement
- รndringsstyring er en proceduremรฆssig metode, som sikrer kvalitet og konsistens, nรฅr der foretages รฆndringer i konfigurationsobjektet.
- Konfigurationsstatusregnskab sporer hver udgivelse under SCM-processen
- Softwarekonfigurationsaudits verificerer, at alt softwareproduktet opfylder basisbehovene
- Projektleder, konfigurationsleder, udvikler, revisor og bruger er deltagere i SCM-processen
- SCM-procesplanlรฆgningen begynder i de tidlige faser af et projekt.
- Git, Team foundation Sever og Ansible er fรฅ populรฆre SCM-vรฆrktรธjer.


