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

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 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

Deltager i SCM proces

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.

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

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.