versjons- og konfigurasjonsstyring · checkin fil1: conflict tid tid pessimistisk (sccs,...
TRANSCRIPT
![Page 1: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/1.jpg)
Endringshåndtering og konfigurasjonsstyring av programvare (SCCM)
Hans Christian
Benestad
Simula Research
Laboratory
![Page 2: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/2.jpg)
2
2
Denne forelesningen beskriver SCCM’s rolle underprogramvare-evolusjon
Endringsprosessen
(med knytninger til
tidligere forelesninger)
Håndtering av endringer
i systemkomponenter
Behovet for endringer
(og endringskontroll...)
![Page 3: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/3.jpg)
Målet for SCCM er å holde orden på endringer under utvikling og evolusjon
Er det noen som vet om vi har rettet denne feilen?
Hvorfor ble dette endret? Ser helt feil ut. Jeg endrer
tilbake.
Denne feilen var rettet men dukker nå opp igjen etter at
jeg gikk over til Linux!
Utviklere
Prosjektet
Brukere
![Page 4: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/4.jpg)
Evolusjonsfasen kan være lang sammenlignet med initiell utvikling
Initielle krav
1. Samle inn
2. Analysere
3. Prioritere
4. Gjennomføre5. Levere
Endrings-
prosess
v.2v.3
v.4
v.5
v.n
v.1
![Page 5: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/5.jpg)
Det er nødvendig og ønskelig å endre programvare
Embrace change- Kent Beck 1999
An E-type system must be continually adapted else it becomes progressively less satisfactory in use
- Manny Lehman 1974
Noen årsaker til endringsbehov:
• Feilretting
• Tilpasning til nytt kjøremiljø
• Nye brukerkrav
”Dimensions of software maintenance ” – Swanson 1976
![Page 6: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/6.jpg)
Vellykket evolusjon forutsetter kontrollert
håndtering av endringsønsker
Hver endring gjennomgår en
systemutviklingsprosess
i mikroformat
1. Samle inn
2. Analysere
3. Prioritere
4. Gjennomføre5. Levere
Endrings-
prosess
En endringsprosess beskriver
kommunikasjonsveier, arbeidsflyt, ansvar
og beslutningsprosesser
![Page 7: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/7.jpg)
Endringskontroll av programvarekomponenter er sentralt i endringsprosessen
Krav
Modeller
Verktøy og
biblioteker
KildekodeDatabaseskjema
Versjonskontrolldatabase
![Page 8: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/8.jpg)
Et versjonstre inneholder hver komponents historikk
For hver check-in lagres
en ny komponentversjon
Komponent y 1.15 1.16 1.17 1.18
Release 1
Nytt krav
Release 2
Vanligvis bare en rett linje (trunk,
mainline), men forgreninger kan være
nødvendig
1.16.1
Bugfix-release
Feilretting
![Page 9: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/9.jpg)
I en konfigurasjon inngår nøyaktig én versjon av hver komponent
Komponent y 1.15 1.16 1.17 1.18
Release 1
Nytt krav
Release 2
1.16.1
Bugfix-release
Feilretting
Komponent x 1.2 1.3Med versjonskontroll-verktøy
kan man skape og gjenskape
slike konfigurasjoner
![Page 10: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/10.jpg)
Varianter og versjoner er ortogonale begreper
Tid
Variant (OS, språk, kunde, prissegment)
Versjon 1 Versjon 2 Versjon 3
Versjon:1
Variant: Linux, Engelsk,
DnB, Enterprise
Versjon:1
Variant: XP, Norsk,
Private, Free
Versjon:3
Variant: Linux, Tysk,
DnB, Enterprise
Versjon:3
Variant: XP, Engelsk,
Bank2, Entry-level
![Page 11: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/11.jpg)
Varianter kan håndteres dynamisk eller statisk
Dynamisk: Programvaren
tilpasser seg omgivelsene
under kjøring
Eksempel: Program leser
miljøvariabel LANG, og
hent brukermeldinger fra
fil med navn LANG.txt
+En felles versjon til alle brukere
Statisk: Den kjørbare
programvaren lages i
forskjellige varianter
Eksempel: Inkluder ulike
kildefiler under bygging av
ulike varianter
+Kan gi enklere/mer effektiv kode
- Kompliserende SCCM
![Page 12: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/12.jpg)
En god arkitektur forenkler varianthåndtering
Web-klient Windows-klient
OS
spesifikk
DB
spesifikk
Felles funksjonalitet
Språk-
definisjoner
Data-definert oppførsel
(eks. språk,kundesegment)
Særegenheter for GUI,
operativ- og databasesystem i
adskilte komponenter
Tre-lags arkitektur
er et godt utgangspunkt
![Page 13: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/13.jpg)
Kravhåndtering er viktig i endringsprosessen
1. Samle inn
2. Analysere
3. Prioritere
4. Gjennomføre
5. Levere
Endrings-
prosess
Populære smidige metoder anbefaler
en iterativ kravprosess også under
initiell utvikling!
Hvordan motivere
brukere til å kommunisere
behov?
Hvordan
dokumenteres og
formidles krav?
Hvordan passer
kravet inn i
eksisterende system
og produktstrategi?
![Page 14: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/14.jpg)
Kontraktstyper som forutsetter veldefinert omfang
er vanskelig å bruke under videreutvikling
1. Samle inn
2. Analysere
3. Prioritere
4. Gjennomføre5. Levere
Endrings-
prosess
Hvem betaler?
I praksis vil mange
bruke kombinasjon av
fastpris og timepris
Fra PS2000:
Nye krav
framkommer
iterativt
Kommersielle avklaringer må integreres i endringsprosessen
![Page 15: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/15.jpg)
SCCM er sentralt ved testing før leveranse
1. Samle inn
2. Analysere
3. Prioritere
4. Gjennomføre
5. Levere
EndreLage konfigurasjon
for testTeste
Lage
release
Hvilke feil er utestående? Hvilken versjon skal testes? Hvilke testcase skal kjøres?
SCCM også av testdata!
![Page 16: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/16.jpg)
God SCCM kommer brukerne til gode
Hvordan melder jeg
endringsønsker?
Hvilke features har den nye versjonen?
Hvordan oppgraderer jeg fra tidligere versjon?
![Page 17: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/17.jpg)
God SCCM kommer utviklere til gode
Hvilke endringer har jeg ansvar for?
Hvilken versjon og variant gjelder endringen?
Hvorfor er denne programkoden endret?
![Page 18: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/18.jpg)
God SCCM kommer prosjektet til gode
Når kan vi slippe neste versjon?
Hva må testes før neste versjon?
Hva må oppdateres i brukerdokumentasjonen?
![Page 19: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/19.jpg)
Kognitiv kapasitet er en kritisk begrensning i
systemutvikling
• God SCCM frigjør kapasitet til kreativt arbeid
![Page 20: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/20.jpg)
Når er SCCM irrelevant?
Én utvikler lager én versjon av ett system
Men så populært dette ble da
Opprinnelig kodebase lever ofte lenge!
facebookgoogle MS-Dos
![Page 21: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/21.jpg)
Dosering av SCCM må tilpasses behov
Husk å gjøre
cvs checkin
og slukk
lyset før du
går
Uformelle vs. formaliserte rutiner.
Subversion
server
Enkle vs. state-of-the-art verktøy
Subversion
klient
![Page 22: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/22.jpg)
Behovet er større i store prosjekter
• Antall kommunikasjonsveier øker kvadratisk (n2-n)/2
3 10 28 120
n=3 n=5 n=8 n=16
…og i desentraliserte prosjekter
![Page 23: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/23.jpg)
Behovet også større for
”Innkapslet”
programvareSikkerhetskritisk
programvareVirksomhetskritisk
programvare
![Page 24: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/24.jpg)
Bruk av verktøy for versjonskontroll
![Page 25: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/25.jpg)
Typisk arkitektur i versjonskontroll-systemer
CVS repository
CVS-tjener
a.java
b.doc Build.xml
c.lib
Privat
arbeidsområde
CVS-client
Privat
arbeidsområde
Inter
nett
Inter
nett
Eclipse IDE
CVS-client
Eclipse IDE
![Page 26: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/26.jpg)
Endringssyklus sett fra utvikler
Etablere arbeidsområde
for neste release
Ta eierskap
til endring
Sjekke ut
fil(er)
Endre
fil(er)
Teste lokalt
Sjekke inn alle
endrede filer
Release
Uker
Timer
Minutter
![Page 27: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/27.jpg)
Arbeidsområde (workspace/view) er en
utviklerspesifikk konfigurasjon
• For å kunne gjennomføre, bygge og teste må
hver utvikler ha sitt personlige arbeidsområde
• Et typisk innhold i arbeidsområder er
– Siste versjon i Mainline
– Overstyrt av siste versjon i en aktuell forgrening (for
eksempel BugRel1)
– Overstyrt av egne lokal endringer som ikke er sjekket
inn enda
• Holdes synkronisert med innholdet i repository
– Eksplisitt via kommando ”Update”
– Eventuelt automatisk (støttes av noen verktøy)
![Page 28: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/28.jpg)
Løpende utvikling må kunne skilles fra feilretting
• Scenario:
• Release1 er sluppet, og utvikling pågår for release2
• Kunden opplever kritisk feil i Release1
• Hva gjør man?
HalloVerden
.java0.9 1.0 1.1
Release1 Release2
1.0.1
Bug
release1
2.0
![Page 29: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/29.jpg)
Navngiving (label/tag) gjør det enkelt å
gjenskape konfigurasjoner
All kode som inngår i en release assosieres med et navn,
for eksempel R1 (> cvs tag -R R1)
R1
R1 R1
R1
Fil 1 Fil 2 Fil 3 Fil nR1 = Navngitt
versjon, inngår i
release R1
R1 kan da enkelt gjenskapes, med kommando som(> cvs checkout -r R1)
![Page 30: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/30.jpg)
Med forgrening kan man jobbe med flere
utgaver av samme komponent
• Aktuelt ved
– Skille langsiktig utvikling fra kortsiktige releaser
– Eksperimentell utvikling
– Utvikling av større features
– Samtidig utvikling i samme fil
• Kost/nytte må vurderes
– Forgrening for hver logiske endring er som regel
overkill
• Langlivede forgreninger bør unngås
1.16 1.17
1.16.1
branch
![Page 31: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/31.jpg)
Fletting (merge) slår sammen forgreninger
• 3-veis merge er vanlig
• Konflikter må håndteres manuelt, med støtteverktøy
• Produktnivå merge
Eks: Merge alle Bug-
forgreninger inn i Mainline
Her varierer verktøystøtten
![Page 32: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/32.jpg)
Pessimistisk vs. optimistisk håndtering av parallellitet
checkout fil1: OK
checkout fil1: Error
checkin fil1:OK
checkout fil1: Ok
checkout fil1: OK
checkout fil1: Ok
checkin fil1:Ok
checkin fil1: Conflict
tid
tid
Pessimistisk (SCCS, Clearcase…)
Optimistisk (CVS, Subversion)
![Page 33: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/33.jpg)
Verktøy for
endringshåndtering
![Page 34: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/34.jpg)
Verktøy gjør det enklere å holde
oversikten over endringsforespørsler
jira
telelogic
change
clearquest
testtrack
![Page 35: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/35.jpg)
Mange gode open-source alternativer finnes
bugzilla
RT
mantis
trac
![Page 36: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/36.jpg)
Innmelding av endringer bør ha en lav terskel
Innmelding direkte i verktøy
gir best struktur
Innmelding via e-mail har
lavere terskel for mange
brukere
Eventuelt med direkte link
fra programvaren
![Page 37: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/37.jpg)
”Mine endringer” og fleksible søk gir god oversikt
Søkekriterier
Resultat
![Page 38: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/38.jpg)
Integrasjon med versjonskontrollsystem er nyttig
>> CVS commit –m ”ID=1 State=KlarTilSystemTest Feil bruk av peker”
CVS oppdaterer endringsdatabase
Utvikler utfører en endring, og sjekker inn kode:
+ Enkelt for utvikler
+ Ta vare på sammenhenger mellom logiske
endringer og kodeendringer
![Page 39: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/39.jpg)
Nyttig å vise sammenhenger mellom logiske
endringer og kodeendringer
CR 1
CR 2
CR 3
b.java
a.c
CR = Change Request
![Page 40: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/40.jpg)
Bygging: Store programsystemer består av
komponenter som utgjør en avhengighetsgraf
System.exe
Javalib.jar
Fil.java
Externallib.jarClib.lib
Fil.o
Fil.cpp
Fil.h
Fil.class
Byggeverktøy hjelper til med å regenerere komponenter ved behov
system.exe: clib.lib javalib.jar externallib.jar
o:.cpp
gcc $.cpp –o $.o
![Page 41: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/41.jpg)
Byggeregler bør være sentralt definert
IDE’er som Eclipse
oppmuntrer til å
definere lokale
byggeregler
Dette skalerer dårlig for større
prosjekter
![Page 42: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/42.jpg)
Byggeregler kan defineres i
byggeverktøyenes beskrivelsesfiler
• Kjente verktøy: Make, Ant, Maven
• Beskrivelsesfiler spesifiserer– Hvilke filer inngår
– Kompilerings- og linkeopsjoner
– Versjoner av biblioteker og verktøy
Release 1
Lurt å la beskrivelsesfiler
i seg selv være underlagt
konfigurasjonsstyring
![Page 43: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/43.jpg)
Fullt ut repeterbar bygging kan være krevende
• Krever i prinsippet konfigurasjonsstyring
av
– Kildefiler
– Dokumentasjon
– Eksterne/interne biblioteker
– Generatorverkøy, som kompilatorer
– Byggeregler
![Page 44: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/44.jpg)
Avansert emner
Hvem skal eie
SCCM-systemene?
Versjonsstyring av data
Trendmålinger basert
på SCCM-data
0
5000
10000
15000
20000
25000
Q1-05
Q2-05
Q3-05
Q4-05
Q1-06
Q2-06
Q3-06
Q4-06
Q1-07
Q2-07
A
B
Start of study
![Page 45: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/45.jpg)
Hvem definerer og eier SCCM-systemene?
Fra den utfylte
PS2000-kontrakten
Normalt vil utviklingsprosjektet styre versjonskontrollsystemet, men
kunde kan og bør sette krav (se over)
Det ligger makt i å eie endringshåndteringssystemet!
![Page 46: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/46.jpg)
Versjonsstyring av data
• Kundens data er hellig
• Nye versjoner må ta hensyn til eksisterende
datastruktur (og semantikk i data)
• I kompliserte tilfeller kan konvertering av
data kreve store ressurser
![Page 47: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/47.jpg)
Versjonsdatabaser inneholder verdifull
informasjon for prosjektevaluering
Analyse av produktivitet
Endringsintensitet
Antall feil, og alvorlighetsgrad
Andel feil vs. forbedringer
Identifisere problematiske komponenter
SCCM repository
Prosess – og
produktforbedring
0
5000
10000
15000
20000
25000
Q1-05
Q2-05
Q3-05
Q4-05
Q1-06
Q2-06
Q3-06
Q4-06
Q1-07
Q2-07
A
B
Start of studyFix vs.
enhance
![Page 48: Versjons- og konfigurasjonsstyring · checkin fil1: Conflict tid tid Pessimistisk (SCCS, Clearcase…) Optimistisk (CVS, Subversion) Verktøy for endringshåndtering. Verktøy gjør](https://reader033.vdocuments.pub/reader033/viewer/2022060921/60acd6d090f4f8088f0782ef/html5/thumbnails/48.jpg)
Oppsummering
• God SCCM gjør livet enklere for prosjektet og
utviklerne
• Valg av prosedyrer og verktøy er avhengig av
behovene
• Riktig dosert så understøtter versjons- og
konfigurasjonsstyring effektiv utvikling og kvalitet
i leveranser
Spørsmål?