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.
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.
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:
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/



