Software Configuration Management i Software Engineering

โšก Smart opsummering

Softwarekonfigurationsstyring (SCM) er en proces til systematisk at administrere, organisere og kontrollere รฆndringer i dokumenter, kode og andre elementer i hele softwareudviklingens livscyklus. Dens primรฆre mรฅl er at รธge produktiviteten, samtidig med atping fejl til et minimum.

  • ๐Ÿ‡ง๐Ÿ‡ท Definition: SCM administrerer og kontrollerer systematisk รฆndringer i dokumenter, kode og enheder pรฅ tvรฆrs af udviklingslivscyklussen.
  • ๐ŸŽฏ Hvorfor det drejer sig om: Den koordinerer flere udviklere, versioner og grene, samtidig med at den kontrollerer omkostningerne ved รฆndringer.
  • ๐Ÿ—‚๏ธ Fem kerneopgaver: Konfigurationsidentifikation, baselines, รฆndringskontrol, statusregnskab og revisioner.
  • ๐Ÿ‘ฅ Nรธgledeltagere: Konfigurationschef, udvikler, revisor, projektleder og slutbruger.
  • ???? SCM-plan: Planlรฆgning fรธlger standarder som IEEE 828 og definerer vรฆrktรธjer, navngivning og ansvarsomrรฅder.
  • ๐Ÿ› ๏ธ Populรฆre vรฆrktรธjer: Git, Hold Foundation Server og Ansible understรธtter versionskontrol og automatisering.

Software Configuration Management

Hvad er Software Configuration Management?

I Software Engineering, Softwarekonfigurationsstyring (SCM) er en proces til systematisk at styre, organisere og kontrollere รฆndringer i dokumenter, koder og andre enheder i lรธbet af softwareudviklingslivscyklussen. Det primรฆre mรฅl er at รธge produktiviteten med minimale fejl. SCM er en del af det tvรฆrfaglige felt konfigurationsstyring, og det kan prรฆcist bestemme, hvem der har foretaget hvilken revision.

Hvorfor har vi brug for konfigurationsstyring?

De primรฆre รฅrsager til at implementere et teknisk softwarekonfigurationsstyringssystem er:

  • Der er mange personer, der arbejder pรฅ software, som lรธbende opdateres.
  • Det kan vรฆre et tilfรฆlde, hvor flere versioner, grene og forfattere er involveret i et softwarekonfigurationsprojekt, og teamet er geografisk fordelt og arbejder samtidigt.
  • Der skal tages hensyn til รฆndringer i brugerkrav, politikker, budgetter og tidsplaner.
  • Softwaren 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 forbundet med at foretage รฆndringer i et system.

Har brug for konfigurationsstyring

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 et softwaresystem. Ved hjรฆlp af dette trin kan du administrere eller kontrollere noget, selvom du ikke ved, hvad det er. Det er en beskrivelse, der indeholder CSCI-typen (Computer Software Configuration Item), et projekt-id og versionsoplysninger.

Aktiviteter under denne proces:

  • Identifikation af konfigurationselementer som kildekodemoduler, test sag, og kravspecifikation.
  • Identifikation af hver CSCI i SCM-arkivet ved hjรฆlp af en objektorienteret tilgang.
  • Processen starter med grundlรฆggende objekter, der grupperes i aggregerede objekter. Detaljer om hvad, hvorfor, hvornรฅr og af hvem รฆndringer i testen foretages.
  • Hvert objekt har sine egne egenskaber, der identificerer dets navn, som 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, bรธr den navngives login_v1.2.php, hvor v1.2 stรฅr for filens versionsnummer.

I stedet for at navngive en mappe "Code", den burde hedde"Code_Dโ€, hvor D reprรฆsenterer, at koden 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:

  • Gรธr det lettere at oprette forskellige versioner af en applikation.
  • Definering og bestemmelse af mekanismer til hรฅndtering af forskellige versioner af disse arbejdsprodukter.
  • Den funktionelle basislinje svarer til de gennemgรฅede systemkrav.
  • Bredt anvendte baselinjer omfatter funktionelle, udviklingsmรฆssige og produktbaselinjer.

Med enkle ord betyder baseline klar til frigivelse.

Skift kontrol

ร†ndringskontrol er en proceduremรฆssig metode, der 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 committes til repository'et.
  • Anmodningen vil blive kontrolleret ud fra den tekniske vรฆrdi, mulige bivirkninger og den samlede indvirkning pรฅ andre konfigurationsobjekter.
  • Den administrerer รฆndringer og gรธr konfigurationselementer tilgรฆngelige i lรธbet af softwarens livscyklus.

Konfiguration Status Accounting

Konfigurationsstatusregnskab tracks hver udgivelse under SCM-processen. Denne fase involverer trachvad hver version har, og hvilke รฆndringer der fรธrer til denne version.

Aktiviteter under denne proces:

  • Holder styr pรฅ alle รฆndringer, der er foretaget i den forrige baseline for at nรฅ en ny baseline.
  • Identificรฉr alle elementer for at definere softwarekonfigurationen.
  • Overvรฅg status for รฆndringsanmodninger.
  • Fuld liste over alle รฆndringer siden sidste baseline.
  • Giver trackonge af fremskridt til den nรฆste basislinje.
  • Tillader at tidligere udgivelser/versioner kan vรฆre eksisterendetractil 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.
  • At verificere overholdelse af konfigurationskontrolstandarder, revidere og rapportere de foretagne รฆndringer.
  • SCM-revisioner sikrer ogsรฅ, at traceffektiviteten 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:

Deltager i SCM proces

1. Configuration Manager

  • Konfigurationslederen er den leder, 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 kodekonfigurationen.
  • Udvikleren bรธr kontrollere รฆndringerne og lรธse konflikter.

3. Revisor

  • Revisor er ansvarlig for SCM-revision og -gennemgang.
  • Skal sikre udgivelsens konsistens og fuldstรฆndighed.

4. Projektleder:

  • Sรธrg for, at produktet udvikles inden for en given tidsramme.
  • Overvรฅger udviklingens fremskridt og genkender problemer i SCM-processen.
  • Generer rapporter om softwaresystemets status.
  • Sรธrg for, at processer og politikker fรธlges for oprettelse, รฆndring og testning.

5. Bruger

Slutbrugeren bรธr forstรฅ de vigtigste SCM-termer for at sikre, at vedkommende har den nyeste version af softwaren.

Software Configuration Management Plan

SCMP-processen (Software Configuration Management Planning) begynder i de tidlige kodningsfaser af et projekt. Resultatet af planlรฆgningsfasen er SCM-planen, som kan blive udvidet eller revideret i lรธbet af projektet.

  • SCMP'en kan fรธlge en offentlig standard som IEEE 828 eller en organisationsspecifik standard.
  • Den definerer de typer dokumenter, der skal administreres, og en navngivningskonvention for dokumenter. 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 anvendes under SCM-processen.
  • Konfigurationsstyringsdatabase til registrering af konfigurationsinformation.

Softwarekonfigurationsstyringsvรฆrktรธjer

Enhver software til forandringsledelse bรธr have fรธlgende 3 nรธglefunktioner:

Samtidig styring:

Nรฅr to eller flere opgaver udfรธres pรฅ samme tid, kaldes det samtidig drift. Samtidighed i SCM-sammenhรฆng 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 en arkiveringsmetode eller gemmer alle รฆndringer, der foretages i en fil. Ved hjรฆlp af arkiverings- eller gemmefunktionen er det muligt at rulle tilbage til den forrige version i tilfรฆlde af problemer.

Synchronisering:

Brugere kan tjekke mere end รฉn fil eller en hel kopi af arkivet ud. Brugeren arbejder derefter pรฅ den nรธdvendige fil og tjekker รฆndringerne tilbage til arkivet. De kan synkronisere deres lokale kopi for at holde sig opdateret med de รฆndringer, der er 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.

Hent link: https://azure.microsoft.com/en-us/services/devops/server/

3. Ansible: Det er et open source-vรฆrktรธj til softwarekonfigurationsstyring. Udover konfigurationsstyring tilbyder det ogsรฅ applikationsimplementering og opgaveautomatisering.

Hent link: https://www.ansible.com/

Ofte Stillede Spรธrgsmรฅl

Version kontrol tracgendanner รฆndringer til filer og lader dig rulle tilbage til tidligere versioner. SCM er bredere: det dรฆkker ogsรฅ konfigurationsidentifikation, baselines, รฆndringskontrol, statusregnskab og revisioner. Versionskontrol er en vigtig del af den bredere SCM-proces.

SCM fokuserer pรฅ at kontrollere og tracรฆndringer i softwarekonfigurationselementer. DevOps er en bredere kultur og et sรฆt af praksisser, der forener udvikling og drift med henblik pรฅ kontinuerlig levering. SCM-vรฆrktรธjer og baselines understรธtter ofte den automatisering, som DevOps-pipelines er afhรฆngige af.

IEEE 828 er en anerkendt standard, der definerer, hvordan man opretter en Software Configuration Management Plan (SPC). Den specificerer de aktiviteter, ansvarsomrรฅder og den dokumentation, der er nรธdvendig for at administrere konfigurationselementer ensartet, sรฅ teams kan fรธlge en gennemprรธvet struktur i stedet for at opfinde deres egen.

AI kan gennemgรฅ รฆndringsanmodninger, forudsige effekten af โ€‹โ€‹en รฆndring og markere risikable eller modstridende redigeringer, fรธr de nรฅr baseline. Det hjรฆlper ogsรฅ med at analysere statusregnskabsdata og identificere mรธnstre, som menneskelige korrekturlรฆsere mรฅske overser pรฅ tvรฆrs af store, hurtigt bevรฆgelige kodebaser.

Ja. AI kan automatisere rutineopgaver som versionsstyring, tagging af udgivelser og generering af revisionsrapporter. Kombineret med vรฆrktรธjer som Ansible kan den registrere konfigurationsafvigelser og selvreparerende miljรธer, mens mennesker stadig godkender stรธrre grundlรฆggende รฆndringer og politikker.

Opsummer dette indlรฆg med: