Software Configuration Management i Software Engineering
Hva er Software Configuration Management?
I programvareteknikk, Software Configuration Management (SCM) er en prosess for systematisk รฅ administrere, organisere og kontrollere endringene i dokumentene, kodene og andre enheter i lรธpet av livssyklusen for programvareutvikling. Hovedmรฅlet er รฅ รธke produktiviteten med minimale feil. SCM er en del av det tverrfaglige omrรฅdet for konfigurasjonsstyring, og det kan nรธyaktig bestemme hvem som har utfรธrt hvilken revisjon.
Hvorfor trenger vi konfigurasjonsadministrasjon?
De viktigste รฅrsakene til รฅ implementere teknisk programvarekonfigurasjonsstyringssystem er:
- Det er flere personer som jobber med programvare som oppdateres kontinuerlig
- Det kan vรฆre et tilfelle der flere versjoner, grener, forfattere er involvert i et programvarekonfigurasjonsprosjekt, og teamet er geografisk distribuert og jobber samtidig
- Endringer i brukerkrav, policy, budsjett, tidsplan mรฅ imรธtekommes.
- Programvare skal kunne kjรธres pรฅ ulike maskiner og Operating systemer
- Bidrar til รฅ utvikle koordinering mellom interessenter
- SCM-prosessen er ogsรฅ fordelaktig for รฅ kontrollere kostnadene som er 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 programvaresystemet. 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.
- Identifikasjon av hver CSCI i SCM-depotet, ved รฅ bruke en objektorientert tilnรฆrming
- Prosessen starter med grunnleggende objekter som er gruppert i aggregerte objekter. Detaljer om hva, hvorfor, nรฅr og av hvem endringer i testen gjรธres
- Hvert objekt har sine egne funksjoner som identifiserer navnet som er eksplisitt for alle andre objekter
- Liste over nรธdvendige ressurser som dokumentet, filen, verktรธyene osv.
Eksempel:
I stedet for รฅ navngi en fil login.php bรธr den hete login_v1.2.php der v1.2 stรฅr for versjonsnummeret til filen
I stedet for รฅ navngi mappen "Code" bรธr den hete "Code_D" hvor D representerer kode 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:
- Forenkle konstruksjon av ulike versjoner av en applikasjon
- Definere og bestemme mekanismer for รฅ administrere ulike versjoner av disse arbeidsproduktene
- Den funksjonelle grunnlinjen tilsvarer de gjennomgรฅtte systemkravene
- Mye brukte grunnlinjer inkluderer funksjonelle, utviklingsmessige og produktbaselinjer
Med enkle ord betyr baseline klar for utgivelse.
Endre kontroll
Endringskontroll er en prosedyremetode som sikrer kvalitet og konsistens nรฅr det gjรธres endringer i konfigurasjonsobjektet. I dette trinnet sendes endringsforespรธrselen til programvarekonfigurasjonsbehandlingen.
Aktiviteter under denne prosessen:
- Kontroller ad-hoc-endringer for รฅ bygge et stabilt programvareutviklingsmiljรธ. Endringer er forpliktet til depotet
- Forespรธrselen vil bli kontrollert basert pรฅ den tekniske fordelen, mulige bivirkninger og den generelle innvirkningen pรฅ andre konfigurasjonsobjekter.
- Den administrerer endringer og gjรธr konfigurasjonselementer tilgjengelige i lรธpet av programvarens livssyklus
Konfigurasjonsstatusregnskap
Konfigurasjonsstatusregnskap sporer hver utgivelse under SCM-prosessen. Dette stadiet innebรฆrer รฅ spore hva hver versjon har og endringene som fรธrer til denne versjonen.
Aktiviteter under denne prosessen:
- Holder en oversikt over alle endringene som er gjort i forrige grunnlinje for รฅ nรฅ en ny grunnlinje
- Identifiser alle elementer for รฅ definere programvarekonfigurasjonen
- Overvรฅk status for endringsforespรธrsler
- Komplett liste over alle endringer siden forrige grunnlinje
- Tillater sporing av fremgang til neste grunnlinje
- Gjรธr det mulig รฅ sjekke tidligere utgivelser/versjoner som skal trekkes ut for testing
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 รฅ verifisere samsvar med konfigurasjonskontrollstandarder. revisjon og rapportering av endringene som er gjort
- SCM-revisjoner sikrer ogsรฅ at sporbarhet opprettholdes under prosessen.
- Sikrer at endringer som gjรธres i en grunnlinje samsvarer med konfigurasjonsstatusrapportene
- Validering av fullstendighet og konsistens
Deltaker i SCM-prosessen
Fรธlgende er nรธkkeldeltakerne i SCM
1. Konfigurasjonsbehandling
- Configuration Manager er lederen som er ansvarlig for รฅ identifisere konfigurasjonselementer.
- CM sikrer 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 รฅ opprettholde konfigurasjonen av koden.
- Utvikleren bรธr sjekke endringene og lรธse konflikter
3. Revisor
- Revisor er ansvarlig for SCM-revisjoner og gjennomganger.
- Behov for รฅ sikre konsistensen og fullstendigheten av utgivelsen.
4. Prosjektleder:
- Sรธrg for at produktet utvikles innenfor en viss tidsramme
- Overvรฅker fremdriften i utviklingen og gjenkjenner problemer i SCM-prosessen
- Generer rapporter om statusen til programvaresystemet
- Sรธrg for at prosesser og retningslinjer fรธlges for รฅ lage, endre og teste
5. Bruker
Sluttbrukeren bรธr forstรฅ de viktigste SCM-begrepene for รฅ sikre at han har den nyeste versjonen av programvaren
Programvarekonfigurasjonsadministrasjonsplan
SCMP-prosessplanleggingen (Software Configuration Management Planning) begynner i de tidlige kodingsfasene av et prosjekt. Resultatet av planleggingsfasen er SCM-planen som kan forlenges eller revideres i lรธpet av prosjektet.
- SCMP kan fรธlge en offentlig standard som IEEE 828 eller organisasjonsspesifikk standard
- Den definerer hvilke typer dokumenter som skal vรฆre administrasjon og en dokumentnavn. Eksempel Test_v1
- SCMP definerer personen som skal vรฆre ansvarlig for hele SCM-prosessen og opprettelsen av baselines.
- Fiks retningslinjer for versjonsadministrasjon og endringskontroll
- Definer verktรธy som kan brukes under SCM-prosessen
- Konfigurasjonsadministrasjonsdatabase for registrering av konfigurasjonsinformasjon.
Programvarekonfigurasjonsadministrasjonsverktรธy
Enhver endringsadministrasjonsprogramvare bรธr ha fรธlgende 3 nรธkkelfunksjoner:
Samtidig behandling:
Nรฅr to eller flere oppgaver skjer samtidig, kalles det samtidig operasjon. Samtidighet i kontekst til SCM betyr at den samme filen blir redigert av flere personer samtidig.
Hvis samtidighet ikke administreres riktig med SCM-verktรธy, kan det skape mange presserende problemer.
Versjonskontroll:
SCM bruker arkiveringsmetode eller lagrer hver endring som er gjort i filen. Ved hjelp av arkiverings- eller lagringsfunksjonen er det mulig รฅ rulle tilbake til forrige versjon i tilfelle problemer.
Synchronisering:
Brukere kan sjekke ut mer enn รฉn fil eller en hel kopi av depotet. Brukeren arbeider deretter med den nรธdvendige filen og sjekker inn endringene tilbake til depotet. De kan synkronisere sin lokale kopi for รฅ holde seg oppdatert med endringene 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. Ansvarlig: Det er et administrasjonsverktรธy for programvarekonfigurasjon med รฅpen kildekode. Bortsett fra konfigurasjonsadministrasjon tilbyr den ogsรฅ applikasjonsdistribusjon og oppgaveautomatisering.
Last ned link: https://www.ansible.com/
Sjekk flere SW-konfigurasjonsverktรธy: https://www.guru99.com/software-configuration-management-tools.html
Konklusjon
- Beste praksis for Configuration Management hjelper organisasjoner til systematisk รฅ administrere, organisere og kontrollere endringene i dokumentene, kodene og andre enheter i lรธpet av Programvareutvikling livssyklus.
- Det primรฆre mรฅlet med SCM-prosessen er รฅ รธke produktiviteten med minimale feil
- Hovedรฅrsaken bak konfigurasjonsadministrasjonsprosessen er at det er flere personer som jobber med programvare som kontinuerlig oppdateres. SCM hjelper med รฅ etablere samtidighet, synkronisering og versjonskontroll.
- En grunnlinje er en formelt akseptert versjon av et programvarekonfigurasjonselement
- Endringskontroll er en prosedyremetode som sikrer kvalitet og konsistens nรฅr det gjรธres endringer i konfigurasjonsobjektet.
- Konfigurasjonsstatusregnskap sporer hver utgivelse under SCM-prosessen
- Programvarekonfigurasjonsrevisjoner bekrefter at alt programvareproduktet tilfredsstiller basisbehovene
- Prosjektleder, konfigurasjonsleder, utvikler, revisor og bruker er deltakere i SCM-prosessen
- SCM-prosessplanleggingen begynner i de tidlige fasene av et prosjekt.
- Git, Team foundation Sever og Ansible er noen fรฅ populรฆre SCM-verktรธy.


