Konfigurasjonsstyring og versjonshåndtering

Slides:



Advertisements
Liknende presentasjoner
12.Studienreise nach Finnland,
Advertisements

Hvor stor er en fisk? Yggdrasil Hvor stor er en fisk?  Vanlige kundetyper og prosjekter  Faktorer som påvirker.
Kvinner og politikk Kvinnelig valgmobilisering i Nord-Norge: Glasstak eller etterslep? Marcus Buck.
Microsoft BizTalk og WEBservices
Avhengigheter og installering
PUG Norway – 12. nov 09Thomas Skjørten / Jan Kolstad.
Litt mer om PRIMTALL.
Leif Krane, Datakvalitet AS, Tromsø
Ditt eget integrerte utviklingsmiljø med OpenEdge i fokus Hamar 27. mars 2009 Thomas Skjørten/Jan Kolstad.
Hjemmeoppgave 1: Å høre etter NAVN: ……………………………….. DATO: ……………………….
Grafisk design Visuell kommunikasjon
Sunndalsøra Registertjenester Per Ivar Larsen Sugar
Teknologi for et bedre samfunn 1 Asbjørn Følstad, SINTEF Det Digitale Trøndelag (DDT) Brukervennlig digitalisering av offentlig sektor.
Egenskaper til stoff og tidsbegrep: En modell for aspekt i russisk Laura A. Janda UNC-Chapel Hill/University of Tromsø
Kontrollstrukturer (Kapittel 3)
Teknologiledelse 1 Hvordan utvikle produkter med høy designfokus Kristine Holbø SINTEF Teknologiledelse.
Møre og Romsdal. 2 Ligger det et bedehus eller et kristelig forsamlingshus (ikke kirke) i nærheten av der du bor? (n=502) i prosent.
Sentrum og byutvikling: balansens dilemma
Smidig forvaltning – En pragmatisk tilnærming
© UNIVERSITETETS SENTER FOR INFORMASJONSTEKNOLOGI UNIVERSITETET I OSLO USIT Side 1 HOUSTON We have a problem.
NRKs Profilundersøkelse NRK Analyse. Om undersøkelsen • NRK Analyse har siden 1995 gjennomført en undersøkelse av profilen eller omdømmet til NRK.
Gjenfinningssystemer og verktøy II
Konfigurasjonsstyring og versjonshåndtering
© Lars-Erik Kindblad.  Et platformuavhengig verktøy for å automatisere build prosesser.  Støttes og drives av Apache Software Foundation.  Kommer ferdig.
23. januar 2004TDT4285 Planl&drift IT-syst1 Tjeneroppgraderinger TDT4285 Planlegging og drift av IT-systemer Anders Christensen, IDI.
Grunnleggende testteori
Konfigurasjonsstyring
Prototyping In 140 Sommerville kap. 8. Mål Forstå hensikten med prototyping i forskjellige utviklingsprosjekt Forstå forskjellen mellom evolusjonær og.
Introduksjon til systemutvikling
Hovedprinsipper i Rational Unified Process
Brukergrensesnitt og design av skjermbilder
1 Skal vi snakke sammen? Jan Håvard Skjetne SINTEF / University of Melbourne
Erfaring med bruk av åpen kildekode til støtte for læringsprosessene
Norsk Finansbarometer 2012 Norsk Finansbarometer 2012 Norsk Finansbarometer 2012 TNS Gallup Oslo, 2012 Det norske skadeforsikrings- markedet og dets bevegelser.
Testing av system Gruppe 6 Henrik Bækhus Morten A. Iversen Mathias Bondeson Gunnar K. Kulleseid Svein Ivar Kristiansen Ronny Hulthin.
Automated Testing Tool & When to Stop Testing
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Skriv om slik at setningene betyr omtrent det samme
11 IKT-baserte læremidler Arne Ketil Eidsvik Avd. for lærerutdanning.
SINTEF Teknologi og samfunn PUS-prosjektet Jan Alexander Langlo og Linda C. Hald 1 Foreløpig oppsummering – underlag for diskusjon på PUS-forum
Malverk intern produktopplæring
GRØNNALGER BRUNALGER RØDALGER
1 BM-dagen 29.okt BM1 Fysisk miljøplanlegging Studieprogram for Bygg- og miljøteknikk Meny Prosjektoppgaven Arealbruk og befolkning Transport og.
1 Organisering av kode (Kapittel 5). 2 Mål ● Forstå inkludering er og hvilken gevinst det gir ● Lære å utvikle egne funksjoner ● Forstå variablenes virkemåte.
MetaLib og SFX Demonstrasjon 16 oktober Program Utfordringer for bibliotek og brukere Hva er MetaLib og SFX? Live-demo Systemene i bruk Produkter.
PARLAY/OSA Referanser: Referanser Foredraget er i all hovedsak basert på to artikler. Disse kan finnes på:
Andre funksjoner. Her kommer en beskrivelse av søkefunksjoner, knapper og annen funksjonalitet. 2.
Velkommen! 4/4/2017.
Konfigurasjonsstyring Configuration Management
En oversikt over personopplysningsloven Dag Wiese Schartum, AFIN.
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
Avlevering i praksis KDRS-samling
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
1 21. februar 2006 TDT4285 Planl&drift IT-syst Forelesning nr 19: Revisjonskontroll TDT4285 Planlegging og drift av IT-systemer Våren 2006 Anders Christensen,
Kirsten Ribu Samfunnsinformatikk Mer om tilgjengelighet Kirsten Ribu HiO.
Telenors satsing på fri programvare Paul Skrede - GoOpen 2009.
Kapittel 1, oppgave i) Sett inn preposisjoner eller adverb som passer.
Subversion addin for Visual Studio.NET Gruppe 03-10: Arild Fines Per August Krämer Kristin Borud.
Subversion addin for Visual Studio.NET av: Arild Fines Per August Krämer Kristin Borud.
Dagligbankundersøkelsen Fakta Dagligbankundersøkelsen intervju Befolkning 15 år + TNS Gallup Forfatter Bente Pettersen Roar Thorvaldsen.
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
Gamle systemer In 140 Sommerville kap 26. Forelesninger fremover 8/4:Gamle systemer 22/4: Systemevolusjon og vedlikehold 28/4: Konfigurasjonsstyring.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Befolkning og arbejdsmarked 7. Mikroøkonomi Teori og beskrivelse © Limedesign
Prosjekt 52E Installasjon, konfigurasjon og bruk av System Management Server 2003.
Foretak Bjørnar Sæther SGO 4601 V-07. Struktur på forelesningen Hva er foretak? Foretak i økonomisk geografi Dimensjoner ved foretak Foretak og territorier.
Subversion addin for Visual Studio.NET av: Arild Fines Per August Krämer Kristin Borud.
Subversion addin for Visual Studio.NET Gruppe 03-10: Arild Fines Per August Krämer Kristin Borud.
Introduksjon til in 140 Systemering. In 140 Systemering Forelesninger Rom 112 –Mandag –Torsdag Lærebok: –Sommerville, Ian. Software.
Utskrift av presentasjonen:

Konfigurasjonsstyring og versjonshåndtering Kirsten Ribu 11.04.05

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

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

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

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

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

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

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.

Lagring av deltaer

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.

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

Systemers livssyklus

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

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!

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 ->

Eksempel – siste versjon + plattform

Eksempel – spesiell funksjonalitet - vaktbyttesystem

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

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

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

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

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.

Å 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

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

Version/release-struktur

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

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

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.

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

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

Systembygging

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.

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

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

Komponenter som avhenger av hverandre

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

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

CVS hjemmeside http://www.cvshome.org. 

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

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

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