Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Konfigurasjonsstyring og versjonshåndtering Kirsten Ribu 11.04.05.

Liknende presentasjoner


Presentasjon om: "Konfigurasjonsstyring og versjonshåndtering Kirsten Ribu 11.04.05."— Utskrift av presentasjonen:

1 Konfigurasjonsstyring og versjonshåndtering Kirsten Ribu

2 2 I dag: Konfigurasjonsstyring og versjonshåndtering Hvordan håndtere endringer? Hvordan håndtere versjoner og releaser? Verktøy for konfigurasjonsstyring - CVS, Visual Source Safe, etc.  CVS finnes innebygget i JBuilder, Eclipse

3 3 Konfigurasjonsstyring for mange typer systemer Programvare Maskinvare Ingeniørprodukter Bøker …..

4 4 Introduksjon Dette skal administreres:  Endringsforslag, feilrettinger, Tilpasning til maskinvare og operativsystemer  Mange versjoner kan være i bruk og utvikling samtidig  Hvordan endringer er implementert Konfigurasjonsstyringsprosedyrer  Hvordan behandle og registrere endringsønsker  Hvordan knytte disse til systemkomponenter  Hvordan identifisere versjoner Konfigurasjonsstyringsverktøy  Lagrer versjoner  Bygger systemer av dem  Holder styr på hva som er levert til hvilken kunde

5 5 Hva er konfigurasjonsstyring (1) Konfigurasjonsstyring – disiplin for å håndtere endringer og ulike versjoner av komponenter Konfigurasjonsstyringsverktøy – støtter håndtering av versjoner av komponentene og i å konfigurere (sette sammen) et system

6 6 Hva er konfigurasjonsstyring (2) En disiplin som omhandler styringen av innhold, endringer og status på delt informasjon i et prosjekt. Disiplinen omfatter både prosesser og tekniske løsninger for å håndtere endringer og integriteten til et produkt. Et enkelt eksempel er at hvis man utgir en ny versjon av et program, så må man sikre at dokumentasjonen som følger med faktisk angår den gjeldende versjonen. Prosessen for konfigurasjonsstyring inneholder følgende aktiviteter:  Konfigurasjonsidentifikasjon - for å finne artifakter eller produkter som er i bruk i et prosjekt.  Endringshåndtering  Tilstandshåndtering  Granskinger og revisjon av statusen på produktet  Leveranser Wikipedia -http://no.wikipedia.org/wiki/Konfigurasjonsstyring

7 7 Virker inn på systemutviklingsprosessen Det er viktig å forstå at konfigurasjonsstyring i dag ikke er en aktivitet på siden av en utviklingsavdelings hovedoppgaver, men en kjerneaktivitet i all profesjonell systemutvikling. Det er også viktig å forstå hvilke elementer som inngår  styring av komponenter, applikasjoner, miljødata  alle endringer  prosessene som skal gjennomløpes for komponentene i ulike faser

8 8 Hva mener vi med komponenter? Alle filer og logiske deler som inngår i enn applikasjon;  dokumentasjon, kildekode, biblioteker og ulike binærfiler. Styring av komponenter er først og fremst håndtering av versjoner av filer. Ideelt bør man ta kopi av alle versjoner som kan ha nytteverdi, men dette gir store diskbehov. Derfor må det finnes en form for "delta"-teknologi som tar vare på forskjellene (deltaene). Man tar også vare på historikk-data som forteller hvem som har utført endringen, hva som er gjort, når og hvorfor.

9 9 Lagring av deltaer

10 10 Hva menes med applikasjon? Med en applikasjon mener vi alt som inngår som en del av en applikasjon.  Dvs. analyse og design-dokumentasjon, biblioteker, objektfiler, testresultat, ikoner, eksekverbare moduler, bilder etc. Hver unike sammensetting må kunne tildeles sitt unike versjonsnummer. Det må være mulig å kunne gjenskape en tidligere versjon av en applikasjon så lenge man bare har det nøyaktige versjonsnummeret. Men det hjelper fint lite om det er teoretisk mulig, hvis det er forbundet med mye tid og arbeid å få fram en tidligere versjon. Et ufravikelig krav for moderne SCM-verktøy er derfor at de må kunne gjenskape tidligere versjoner raskt.

11 11 Endringsstyring Endringsstyring har mange navn:  Problemhåndtering, feilhåndtering etc. NB! Ofte er det forbundet med høy risiko å endre i en modul. Slurv ved oppdateringer av analyse og design- dokumentasjon kan få kostbare følger. Endres det i en modul må det ofte skje noe i flere andre. Dette betyr at endringsstyringen må håndtere "pakker" av endringer. Disse pakkene kan ha egne livsløps-sykluser som er ulike de som gjelder for enkeltmoduler.  Mer om endringshåndtering på forelesning 21.04

12 12 Systemers livssyklus

13 13 Inkrementell utvikling Hyppig systembygging  Støtter samtidig utvikling og testing  Tidsfrist for levering av komponenter (kan være skjelett)  Ny versjon bygges av de leverte komponentene ved kompilering og linking  Systemet leveres til testteamet som kjører tester etter plan  Samtidig arbeider utviklerne videre med systemet  Feil som finnes meldes til utviklerne som må rette dem i senere versjoner. Fordeler ved hyppig bygging  Finner integrasjonsproblemer mellom komponenter tidligere  Fremmer bedre enhetstesting før leveranse  Mindre tidsspill med problemer pga dårlig enhetstesting Utfordringer ved daglig bygging  Holde styr på mange versjoner og feilmeldinger

14 14 Viktig Viktigheten av kunnskap om konfigurasjonsstyring og bygging  Helt avgjørende i nærmest all industriell programvareutvikling  Likevel finnes nesten ingen kompetanse om dette hos nyutdannete kandidater fra universitet/høyskole!

15 15 Hva er en konfigurasjon? = samling av alle komponentene til et system hvor hver komponent er representert med nøyaktig én versjon som er valgt i henhold til et bestemt kriterium:  f. eks. siste versjon, plattform  spesiell funksjonalitet ->

16 16 Eksempel – siste versjon + plattform

17 17 Eksempel – spesiell funksjonalitet - vaktbyttesystem

18 18 Produkter Konfigurasjonsstyring kan omfatte alle typer systemprodukter Spesifikasjoner:  Tekstlige kravspesifikasjoner, Use Case diagrammer etc. Design-dokumenter  UML klassediagrammer  Databaseskjema  Skjermbilder Programmer  Javakode  Kjøreoppsett/Scripts  Lagrede prosedyrer i databaser Test-data Brukermanualer

19 19 Versjoner og konfigurasjoner En komponent kan foreligge i flere versjoner. Et fullstendig sett med komponenter i bestemte versjoner utgjør en konfigurasjon.

20 20 Versjoner/varianter/releaser av systemer Versjon – en instans av et system som er funksjonelt forskjellig fra andre systeminstanser Variant – en instans av et system som er funksjonelt identisk, men forskjellig fra andre system-instanser mht feil, ytelse etc. Release – en instans av et system som distribueres til brukere utenom utviklingsteamet Alle disse instansene utgjør en konfigurasjon

21 21 Release-administrasjon En release er en versjon som distribueres til kunder En release-administrator har ansvar for å  bestemme når en release er klar  Administrere produksjonen av releasen med distribusjonsmedia  Dokumentere hvordan releasen kan framstilles En release er mer enn eksekverbar kode  Konfigurasjonsfiler  Datafiler  Intallasjonsprogram  Dokumentasjon i bok og elektronisk  Pakkemateriale og tilhørende reklame Du kan ikke forutsette at forrige versjon er installert hos kunden

22 22 Release-beslutninger En ny release er kostbart (særlig ved massedistribusjon) Balanse mellom hyppige releaser med lite nytt og få releaser med mye nytt Faktorer som innvirker:  Systemets tekniske kvalitet (Feilrettingsrelease vs. Patch over www)  Konkurransesituasjonen.  Markedsførings – krav.  Endringsforslag fra kunder.

23 23 Å lage en ny release Det er å lage en komplett samling av filer og dokumentasjonen:  Både programkode og datafiler  Konfigurasjonsbeskrivelser for forskjellige miljø  Elektroniske kopier av dokumentasjonen  Skript for installasjonsprogrammet

24 24 Release-dokumentasjon Dokumenterer hvordan releasen kan lages Spesielt viktig for systemer med lang levetid Registrere  Versjon av kildekodekomponentene  Versjon av operativsystem, biblioteker, kompilatorer Ta vare på kopier av kildekode og eksekverbar kode, med alle tilhørende filer

25 25 Version/release-struktur

26 26 Release-problemer Kunder ønsker ikke alltid en ny release av et system  Kan være fornøyd med eksisterende versjon og ønsker ikke ny funksjonalitet Ikke anta at kundene har installert alle tidligere releaser. Alle filer som kreves for en release, må genereres på nytt når releasen skal installeres

27 27 Databasen (repository) Konfigurasjons-databasen er sentral! Inneholder kildekomponenter i ulike versjoner Applikasjonskonfigurasjoner: Sammenstilling av versjoner av kildekomponenter Endringspakker: Sammenstilling av endringer som skal anvendes som en enhet Inneholder avhengigheter mellom objekter

28 28 Konfigurasjonsdatabasen Bør kunne svare på:  Hvilke kunder har kjøpt versjon 3.11 b2  Hva kreves av maskinvare og operativsystem for å kjøre versjon 3.11 b2  Hvor mange versjoner er laget og når  Hvilke versjoner vil endres ved endring i en bestemt komponent  Hvor mange endringsønsker ligger i kø for versjon 3.11 b2  Hvor mange rapporterte feil finnes det i versjon 3.11 b2  Hva ble endret for å rette feilen som blokkerte rente-feltet Konfigurasjonsdatabasen bør være integrert med systemet for versjonsadministrasjon System for versjonsadministrasjon kan  referere til filer  inneholder filer.

29 29 Databasen forts Databasen bør også kunne gi svar på:  Hvem arbeider med/er ansvarlig for en bestemt systemversjon?  Hvilken plattform kreves for en bestemt versjon?  Hvilke versjoner påvirkes av en endring til komponent X?  Hvor mange feil er rapportert i versjon U? Hvis mulig, bør databasen være knyttet mot selve programvaren som utvikles

30 30 Endringshåndtering Programvaresystemer er kontinuerlig gjenstand for krav om endringer fra:  Brukere  Utviklere  Markedet  Myndigheter

31 31 Systembygging

32 32 Systembygging Innebærer kompilering og lenking Dette må du sikre deg:  At alle komponenter er med i byggeinstruksjonen  At riktig versjon av hver komponent blir brukt  At alle nødvendige datafiler er til stede  Blir datafilene tilgjengelige med samme navn/plassering på systemet du bygger for  Er korrekt versjon av kompilator og andre verktøy til stede? CM-verktøy sikrer korrekt skript til systembyggeprosessen.

33 33 Støtte for systembygging Kompilering og lenking av større systemer involverer hundrevis av filer og kan ta mange timer  En feil er nok til å vrake prosessen Systembyggingsverktøy automatiserer prosessen Stand alone: Make eller Integrert med CASE Består av  Avhengighetsspesifikasjonsspråk og interpreter  Verktøyvalgsstøtte  Distribuert kompilering  Håndtering av deriverte objekter

34 34 Bruk av CASE - verktøy Konfigurasjonsadministrasjon:  Store datamengder og store krav  En feil er nok til at det ikke virker Mange CASE-verktøy i bruk  1. Generasjon: Revisjonskontroll og Make  2. Generasjon delvis integrert CM  3. Generasjon full integrert CM Planlegging Endringsadministrasjon Versjonsadministrasjon Systembygging

35 35 Komponenter som avhenger av hverandre

36 36 CVS – Concurrent Versions System CVS bygger på RCS Revision Control System. RCS bygger igjen på erfaringer fra SCCS Source Code Control System SCCS følger med standard Unix og ble brukt mye før i tiden CVS ligger på cube

37 37 VerktøY: Eclipse (og JBuilder) har innebygget CVS

38 38

39 39 CVS hjemmeside

40 40.NET Framework Configuration Tool (Mscorcfg.msc) Provides a graphical interface for managing.NET Framework security policy and applications that use remoting services. This tool also allows you to manage and configure assemblies in the global assembly cache. Mscorcfg.msc can be found in WINDOWS\Microsoft.NET\Framework\v1.1. xxxx" where xxxx is the build number of the.NET Framework you are using.

41 41

42 42 Bruk av CVS Framgangsmåte for å lage ny versjon: 1. cvs checkout Kopierer endringer du har gjort inn i CVS databasen 2. cvs diff Viser arbeidet du har gjort siden sist du la inn enendring 3. cvs log Viser loggmeldinger man cvs for informasjon

43 43 Neste gang Torsdag: Næringslivsdag – ingen forelesning Mandag Flere UML diagrammer. Mer om god objektorientert design


Laste ned ppt "Konfigurasjonsstyring og versjonshåndtering Kirsten Ribu 11.04.05."

Liknende presentasjoner


Annonser fra Google