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: