Software Configuration Management i Software Engineering

⚡ Smart oppsummering

Programvarekonfigurasjonsstyring (SCM) er en prosess for systematisk å administrere, organisere og kontrollere endringer i dokumenter, kode og andre elementer gjennom hele programvareutviklingens livssyklus. Hovedmålet er å øke produktiviteten samtidig somping feil til et minimum.

  • ⚙️ Definisjon: SCM administrerer og kontrollerer systematisk endringer i dokumenter, kode og enheter gjennom hele utviklingssyklusen.
  • 🎯 Hvorfor det er viktig: Den koordinerer flere utviklere, versjoner og grener samtidig som den kontrollerer endringskostnadene.
  • 🗂️ Fem kjerneoppgaver: Konfigurasjonsidentifikasjon, grunnlinjer, endringskontroll, statusregnskap og revisjoner.
  • 👥 Nøkkeldeltakere: Konfigurasjonsleder, utvikler, revisor, prosjektleder og sluttbruker.
  • ???? SCM-plan: Planlegging følger standarder som IEEE 828 og definerer verktøy, navngiving og ansvar.
  • 🛠️ Populære verktøy: Git, Team Foundation Server og Ansible støtter versjonskontroll og automatisering.

Programvarekonfigurasjonsbehandling

Hva er Software Configuration Management?

I programvareteknikk, Programvarekonfigurasjonsstyring (SCM) er en prosess for systematisk å administrere, organisere og kontrollere endringer i dokumenter, koder og andre enheter i løpet av programvareutviklingens livssyklus. Hovedmålet er å øke produktiviteten med minimale feil. SCM er en del av det tverrfaglige feltet konfigurasjonsstyring, og det kan nøyaktig bestemme hvem som har gjort hvilken revisjon.

Hvorfor trenger vi konfigurasjonsadministrasjon?

De viktigste grunnene til å implementere et teknisk programvarekonfigurasjonsstyringssystem er:

  • Det er flere personer som jobber med programvare som oppdateres kontinuerlig.
  • Det kan være et tilfelle der flere versjoner, grener og forfattere er involvert i et programvarekonfigurasjonsprosjekt, og teamet er geografisk distribuert og jobber samtidig.
  • Endringer i brukerkrav, retningslinjer, budsjett og tidsplan må imøtekommes.
  • Programvaren skal kunne kjøre på forskjellige maskiner og Operating systemer.
  • Bidrar til å utvikle koordinering mellom interessenter.
  • SCM-prosessen er også gunstig for å kontrollere kostnadene involvert i å gjøre endringer i et system.

Trenger konfigurasjonsadministrasjon

Enhver endring i programvarekonfigurasjonen vil påvirke sluttproduktet. Derfor må endringer i konfigurasjonselementer kontrolleres og administreres.

Oppgaver i SCM-prosessen

  • Konfigurasjonsidentifikasjon
  • linjene
  • Endre kontroll
  • Konfigurasjonsstatusregnskap
  • Konfigurasjonsrevisjoner og Reviews

Konfigurasjonsidentifikasjon

Konfigurasjonsidentifikasjon er en metode for å bestemme omfanget av et programvaresystem. Ved hjelp av dette trinnet kan du administrere eller kontrollere noe selv om du ikke vet hva det er. Det er en beskrivelse som inneholder CSCI-typen (Computer Software Configuration Item), en prosjektidentifikator og versjonsinformasjon.

Aktiviteter under denne prosessen:

  • Identifikasjon av konfigurasjonselementer som kildekodemoduler, testforsøk, og kravspesifikasjon.
  • Identifisering av hver CSCI i SCM-depotet, ved hjelp av en objektorientert tilnærming.
  • Prosessen starter med grunnleggende objekter som grupperes i aggregerte objekter. Detaljer om hva, hvorfor, når og av hvem endringer i testen gjøres.
  • Hvert objekt har sine egne egenskaper som identifiserer navnet det, og som er eksplisitt for alle andre objekter.
  • Liste over nødvendige ressurser, for eksempel dokumentet, filen, verktøy osv.

Eksempel:

I stedet for å kalle en fil login.php, bør den hete login_v1.2.php der v1.2 står for versjonsnummeret til filen.

I stedet for å gi en mappe navn «Code«, bør den hete «Code_D» der D representerer at koden bør sikkerhetskopieres daglig.

Baseline

En grunnlinje er en formelt akseptert versjon av et programvarekonfigurasjonselement. Den er utpekt og fikset på et bestemt tidspunkt mens SCM-prosessen gjennomføres. Det kan bare endres gjennom formelle endringskontrollprosedyrer.

Aktiviteter under denne prosessen:

  • Gjør det lettere å lage ulike versjoner av en applikasjon.
  • Definere og bestemme mekanismer for å håndtere ulike versjoner av disse arbeidsproduktene.
  • Den funksjonelle grunnlinjen samsvarer med de gjennomgåtte systemkravene.
  • Mye brukte grunnlinjer inkluderer funksjonelle, utviklingsmessige og produktmessige grunnlinjer.

Med enkle ord betyr baseline klar for utgivelse.

Endre kontroll

Endringskontroll er en prosedyremessig metode som sikrer kvalitet og konsistens når endringer gjøres i konfigurasjonsobjektet. I dette trinnet sendes endringsforespørselen til programvarekonfigurasjonsbehandleren.

Aktiviteter under denne prosessen:

  • Kontroller ad hoc-endringer for å bygge et stabilt programvareutviklingsmiljø. Endringer lagres i depotet.
  • Forespørselen vil bli kontrollert basert på teknisk berettigelse, mulige bivirkninger og generell innvirkning på andre konfigurasjonsobjekter.
  • Den håndterer endringer og gjør konfigurasjonselementer tilgjengelige i løpet av programvarens livssyklus.

Konfigurasjonsstatusregnskap

Regnskap for konfigurasjonsstatus tracks hver utgivelse i løpet av SCM-prosessen. Denne fasen involverer trachva hver versjon har og endringene som fører til denne versjonen.

Aktiviteter under denne prosessen:

  • Holder oversikt over alle endringene som er gjort i den forrige grunnlinjen for å nå en ny grunnlinje.
  • Identifiser alle elementene for å definere programvarekonfigurasjonen.
  • Overvåk statusen til endringsforespørsler.
  • Fullstendig liste over alle endringer siden siste grunnlinje.
  • Muliggjør trackonge av fremgang til neste grunnlinje.
  • Tillater at tidligere utgivelser/versjoner blir oppdaterttractestet.

Konfigurasjonsrevisjoner og Reviews

Programvarekonfigurasjonsrevisjoner bekrefter at alt programvareproduktet tilfredsstiller basisbehovene. Det sikrer at det som bygges er det som leveres.

Aktiviteter under denne prosessen:

  • Konfigurasjonsrevisjon utføres av revisorer ved å kontrollere at definerte prosesser blir fulgt og sikre at SCM-målene er tilfredsstilt.
  • For å bekrefte samsvar med konfigurasjonskontrollstandarder, revisjon og rapportering av endringene som er gjort.
  • SCM-revisjoner sikrer også at traceffektiviteten opprettholdes underveis i prosessen.
  • Sørger for at endringer som gjøres i en grunnlinje er i samsvar med konfigurasjonsstatusrapportene.
  • Validering av fullstendighet og konsistens.

Deltaker i SCM-prosessen

Følgende er de viktigste deltakerne i SCM:

Deltaker i SCM-prosessen

1. Konfigurasjonsbehandling

  • Konfigurasjonslederen er lederen som er ansvarlig for å identifisere konfigurasjonselementer.
  • CM sørger for at teamet følger SCM-prosessen.
  • Han/hun må godkjenne eller avvise endringsforespørsler.

2. Utvikler

  • Utvikleren må endre koden i henhold til standard utviklingsaktiviteter eller endringsforespørsler. Han er ansvarlig for å vedlikeholde konfigurasjonen av koden.
  • Utvikleren bør sjekke endringene og løse konflikter.

3. Revisor

  • Revisor er ansvarlig for SCM-revisjoner og gjennomganger.
  • Må sikre konsistens og fullstendighet i utgivelsen.

4. Prosjektleder:

  • Sørg for at produktet utvikles innenfor en viss tidsramme.
  • Overvåker utviklingsfremdriften og gjenkjenner problemer i SCM-prosessen.
  • Generer rapporter om statusen til programvaresystemet.
  • Sørg for at prosesser og retningslinjer følges for oppretting, endring og testing.

5. Bruker

Sluttbrukeren bør forstå de viktigste SCM-begrepene for å sikre at han har den nyeste versjonen av programvaren.

Programvarekonfigurasjonsadministrasjonsplan

SCMP-prosessen (Software Configuration Management Planning) starter i de tidlige kodingsfasene av et prosjekt. Resultatet av planleggingsfasen er SCM-planen, som kan bli utvidet eller revidert i løpet av prosjektet.

  • SCMP kan følge en offentlig standard som IEEE 828 eller en organisasjonsspesifikk standard.
  • Den definerer hvilke typer dokumenter som skal administreres og en navngivningskonvensjon for dokumenter. Eksempel: Test_v1.
  • SCMP definerer personen som skal være ansvarlig for hele SCM-prosessen og opprettelsen av baselines.
  • Fiks policyer for versjonshåndtering og endringskontroll.
  • Definer verktøy som kan brukes under SCM-prosessen.
  • Konfigurasjonsadministrasjonsdatabase for registrering av konfigurasjonsinformasjon.

Programvarekonfigurasjonsadministrasjonsverktøy

All programvare for endringsledelse bør ha følgende tre hovedfunksjoner:

Samtidig behandling:

Når to eller flere oppgaver skjer samtidig, kalles det samtidig drift. Samtidighet i SCM-sammenheng betyr at den samme filen redigeres av flere personer samtidig.

Hvis samtidighet ikke administreres riktig med SCM-verktøy, kan det skape mange presserende problemer.

Versjonskontroll:

SCM bruker en arkiveringsmetode eller lagrer alle endringer som gjøres i en fil. Ved hjelp av arkiverings- eller lagringsfunksjonen er det mulig å rulle tilbake til forrige versjon ved problemer.

Synchronisering:

Brukere kan sjekke ut mer enn én fil eller en hel kopi av depotet. Brukeren jobber deretter med den nødvendige filen og sjekker endringene tilbake til depotet. De kan synkronisere sin lokale kopi for å holde seg oppdatert på endringene som er gjort av andre teammedlemmer.

Følgende er populære verktøy:

1. Git: Git er et gratis og åpen kildekodeverktøy som hjelper versjonskontroll. Den er designet for å håndtere alle typer prosjekter med hastighet og effektivitet.

Last ned link: https://git-scm.com/

2. lag Foundation Server: Team Foundation er en gruppe verktøy og teknologier som gjør teamet i stand til å samarbeide og koordinere for å bygge et produkt.

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

3. Ansible: Det er et åpen kildekode-verktøy for programvarekonfigurasjonsadministrasjon. I tillegg til konfigurasjonsadministrasjon tilbyr det også applikasjonsdistribusjon og oppgaveautomatisering.

Last ned link: https://www.ansible.com/

Spørsmål og svar

Versjonskontroll tracks endringer i filer og lar deg rulle tilbake til tidligere versjoner. SCM er bredere: det dekker også konfigurasjonsidentifikasjon, baselines, endringskontroll, statusregnskap og revisjoner. Versjonskontroll er en viktig del av den bredere SCM-prosessen.

SCM fokuserer på å kontrollere og tracendringer i programvarekonfigurasjonselementer. DevOps er en bredere kultur og et sett med praksiser som forener utvikling og drift for kontinuerlig levering. SCM-verktøy og baselinjer støtter ofte automatiseringen som DevOps-pipelines er avhengige av.

IEEE 828 er en anerkjent standard som definerer hvordan man oppretter en programvarekonfigurasjonsplan (Software Configuration Management Plan). Den spesifiserer aktivitetene, ansvaret og dokumentasjonen som er nødvendig for å administrere konfigurasjonselementer konsekvent, slik at team kan følge en velprøvd struktur i stedet for å finne opp sin egen.

AI kan gjennomgå endringsforespørsler, forutsi virkningen av en endring og flagge risikable eller motstridende redigeringer før de når grunnlinjen. Den hjelper også med å analysere statusregnskapsdata, og oppdager mønstre som menneskelige granskere kan overse på tvers av store, raskt bevegelige kodebaser.

Ja. AI kan automatisere rutineoppgaver som versjonering, tagging av utgivelser og generering av revisjonsrapporter. Kombinert med verktøy som Ansible kan den oppdage konfigurasjonsavvik og selvreparerende miljøer, samtidig som mennesker fortsatt godkjenner store grunnleggende endringer og retningslinjer.

Oppsummer dette innlegget med: