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.

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


