Endringshåndtering og konfigurasjonsstyring av programvare (SCCM)

Like dokumenter
Denne forelesningen beskriver SCCM s rolle under. Endringshåndtering og konfigurasjonsstyring av. Målet for SCCM er å holde orden på endringer

Konfigurasjonsstyring

UKEOPPGAVER 13: KONFIGURASJONSSTYRING

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

Endrings- og konfigurasjonsstyring

Introduksjon til versjonskontroll av Ola Lie

GJENNOMGANG UKESOPPGAVER 3 KRAVHÅNDTERING

Læringsmål og pensum. Utvikling av informasjonssystemer. Oversikt. Systemutvikling Systemutvikling i seks faser Femstegs prosedyre for programmering

Automatisering av datasenteret

BlackBox, WhiteBox og andre testmetoder. Etter ønske fra studentene 26. november 2009

UNIVERSITETET I OSLO

Dokumentasjon av Git. Vedlegg F

GJENNOMGANG UKESOPPGAVER 9 TESTING

UKE 14 Versjonshåndtering og testing. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

BRUKERVEILEDNING. Oppsett av Activesync klient for Windows Smartphone og Pocket PC mot Exchange Customer Service Center

Versjonskontrol med Subversion. og TortoiseSVN

Positiv og virkningsfull barneoppdragelse

EHF Konferansen. Amesto Solutions Purchasing AS. Oslo 23. april 2014

Forberedelser og installasjon av klienter/arbeidsstasjoner. Versjon 1.1

6 ting du bør vite om Office 365

Tyngdekraft og luftmotstand

NM i speiding. Totall resultat: Oppgave navn: Praktisk 2. Patrulje nr: Patrulje navn: Gruppe: Krets: Poeng for oppgaven. Trekk.

Kreativ utvikling av engasjerte mennesker. Fylkesmessa 2009 Kristiansund

1990 første prognoser og varsler om at det ikke vil være nok IPv4 adresser til alle som ønsker det 1994 første dokumenter som beskriver NAT en

Forelesning 9 mandag den 15. september

Nyheter Profdoc Vision Allmenn 4.4. Oracle 11,10g og 8i

INFORMASJONSFORVALTNING OG FDVU DOKUMENTASJON

Oppgave 1. Index Mobil. About me Mobil

PERSINLIGHETSPROFILEN SARE

Open Source Community

DISTRIBUERT UTVIKLING AV NETTTJENESTER ( BARE UTDRAG)

Endrings- og konfigurasjonsstyring JavaZone 2003

Digital postkasse til innbyggere Utviklingsplan 2016

Prototyping. Håkon Tolsby Håkon Tolsby

Litt om meg selv Innleid prosjektleder fra Bouvet Prosjektleder for utvikling av BiRK Barnevern Informasjon Registrering og Kvalitet Representerer her

3. Kravspesifikasjon. Experior - rich test editor for FitNesse -

Nå kommer vi og bytter din el-måler!

Læringsmiljø Hadeland. Felles skoleutviklingsprosjekt for Gran, Lunner og Jevnaker. Vurderingsbidrag

Installasjonsrutiner og klienthåndtering

Læring og nye samarbeidsformer i byggenæringen Kunnskapsfrokost BI 26 februar

1. Å lage programmer i C++

Terminprøve Sigma 1T Våren 2008 m a t e m a t i k k

Forelesning IMT mars 2011

Hva er de viktige grepene en må ta for å få et datasystem til å fungere over tid i en bedrift? av Kjetil Inge Bakkan og Kristine Langeteig Waage

Effektiv Systemadministrasjon

Software installasjon og andre ettertanker

Endring av e-postoppsett med IMAP til ny e-posttjener

GJENNOMGANG UKESOPPGAVER 8 ARKITEKTUR

Prøveeksamen INF1050: Gjennomgang, uke 15

Kravspesifikasjon. Forord

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

Ti egenskaper for å evaluere nettsteders brukskvalitet. Den opplevde kvaliteten til nettstedet

Evaluering av It-systemer i et forvaltningsperspektiv. Drift, vedlikehold og videreutvikling av IT-systemet

La oss først se på problemet med objektorientert tankegang. Se figuren under. Konto

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Brukermanual for statistikk på Asset on web: Statistikk salg pr dag, uke eller måned fordelt på alle avdelinger:

DRIFT OG VEDLIKEHOLD EFFEKTIV ORGANISERING

1. Å lage programmer i C++

Lisensavtale for norske DRG-definisjoner

Gjennomgang av prøveeksamen. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Jon Hammeren Nilsson, Anders Emil Rønning, Lars Grini og Erling Fjelstad

Lykke til! Eksamen i fag TDT4140 Systemutvikling NTNU Norges teknisk-naturvitenskapelige universitet

11 Planlegging og dokumentasjon

Hypotesetesting. Notat til STK1110. Ørnulf Borgan Matematisk institutt Universitetet i Oslo. September 2007

Medarbeidersamtale. Veiledningshefte. Medarbeidersamtale. Mars 2004 Avdeling for økonomi og personal

AlgDat 10. Forelesning 2. Gunnar Misund

Generelt om operativsystemer

Mesteparten av kodingen av Donkey Kong skal du gjøre selv. Underveis vil du lære hvordan du lager et enkelt plattform-spill i Scratch.

PRESENTASJON NORDIG OKTOBER Alle skal kunne teste alt - overalt

Hvordan estimering av ideell tid gjør deg mer realistisk (med innlagt NM i estimering)

VEILEDNING BRUK AV NY LØSNING FOR PERIODISERING AV BUDSJETTER I MACONOMY

FORSIDE ved besvarelse av hjemmeeksamen, semesteroppgave, rapport, essay m.m.

Første gangs konfigurasjon av ipad - en innføring. Det første som møter deg når du slår på en ipad for første gang, er et vennlig Hei.

NyGIV Regning som grunnleggende ferdighet

Positivt [ ] Negativt [ ] Ingen mening [ ] 6. Hvor mange tastevalg er akseptabelt å gjøre innen du blir koblet til en kundebehandler?

På lederutviklingsprogrammene som ofte gjennomføres på NTNU benyttes dette verktøyet. Du kan bruke dette til inspirasjon.

TrioVing Solo. Elektronisk, programmerbar høysikkerhetssylinder. for intelligent og fleksibel sikkerhet

Løsningsforslag til obligatorisk oppgave i MAT 1100, H-04

MAT1030 Forelesning 30

Bilag 1 Utstyr og/eller programvare som skal vedlikeholdes Her angis det utstyr og/eller programvare som vedlikeholdstjenesten omfatter.

UNIVERSITETET I OSLO

Dokumentasjon av Installasjon

Program Målsetting i et langsiktig tidsperspektiv: -motorikk -kommunikasjon -egenledelse

Repeterbarhetskrav vs antall Trails

Hvilken ferietype er du? PERSONVERN

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO

Evaluering av kollokviegrupper i matematikk og programmering høsten jenter har svart på evalueringen

Visma Enterprise - Økonomi

Huldt & Lillevik System Huldt & Lillevik System 4. Versjon

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Praksiseksempel - Bruk av konstruert modelltekst i skriveopplæringen

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

Programområde for data og elektronikk - Læreplan i felles programfag Vg2

Kap 11 Planlegging og dokumentasjon s 310

Strukturerte eventyr og mareritt

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

LP-modellen som utviklingsarbeid i skolen

Transkript:

Endringshåndtering og konfigurasjonsstyring av programvare (SCCM) Hans Christian Benestad Simula Research Laboratory

2 2 Denne forelesningen beskriver SCCM s rolle under programvare-evolusjon Behovet for endringer (og endringskontroll...) Endringsprosessen (med knytninger til tidligere forelesninger) Håndtering av endringer i systemkomponenter

Målet for SCCM er å holde orden på endringer under utvikling og evolusjon Hvorfor ble dette endret? Ser helt feil ut. Jeg endrer tilbake. Utviklere Er det noen som vet om vi har rettet denne feilen? Prosjektet Denne feilen var rettet men dukker nå opp igjen etter at jeg gikk over til Linux! Brukere

Evolusjonsfasen kan være lang sammenlignet med initiell utvikling 2. Analysere Initielle krav 1. Samle inn Endringsprosess 3. Prioritere 5. Levere 4. Gjennomføre v.1 v.2 v.3 v.4 v.5 v.n

Det er nødvendig og ønskelig å endre programvare An E-type system must be continually adapted else it becomes progressively less satisfactory in use - Manny Lehman 1974 Embrace change - Kent Beck 1999 Noen årsaker til endringsbehov: Feilretting Tilpasning til nytt kjøremiljø Nye brukerkrav Dimensions of software maintenance Swanson 1976

Vellykket evolusjon forutsetter kontrollert håndtering av endringsønsker Hver endring gjennomgår en systemutviklingsprosess i mikroformat 2. Analysere 1. Samle inn Endringsprosess 3. Prioritere 5. Levere 4. Gjennomføre En endringsprosess beskriver kommunikasjonsveier, arbeidsflyt, ansvar og beslutningsprosesser

Endringskontroll av programvarekomponenter er sentralt i endringsprosessen Modeller Krav Versjonskontrolldatabase Verktøy og biblioteker Kildekode Databaseskjema

Et versjonstre inneholder hver komponents historikk Release 1 Release 2 Nytt krav Komponent y 1.15 1.16 1.17 1.18 Feilretting For hver check-in lagres en ny komponentversjon 1.16.1 Bugfix-release Vanligvis bare en rett linje (trunk, mainline), men forgreninger kan være nødvendig

I en konfigurasjon inngår nøyaktig én versjon av hver komponent Komponent x 1.2 1.3 Med versjonskontroll-verktøy kan man skape og gjenskape slike konfigurasjoner Release 1 Release 2 Nytt krav Komponent y 1.15 1.16 1.17 1.18 Feilretting 1.16.1 Bugfix-release

Varianter og versjoner er ortogonale begreper Variant (OS, språk, kunde, prissegment) Versjon:1 Variant: Linux, Engelsk, DnB, Enterprise Versjon:3 Variant: Linux, Tysk, DnB, Enterprise Versjon:1 Variant: XP, Norsk, Private, Free Versjon:3 Variant: XP, Engelsk, Bank2, Entry-level Versjon 1 Versjon 2 Versjon 3 Tid

Varianter kan håndteres dynamisk eller statisk Dynamisk: Programvaren tilpasser seg omgivelsene under kjøring Statisk: Den kjørbare programvaren lages i forskjellige varianter Eksempel: Program leser miljøvariabel LANG, og hent brukermeldinger fra fil med navn LANG.txt +En felles versjon til alle brukere Eksempel: Inkluder ulike kildefiler under bygging av ulike varianter +Kan gi enklere/mer effektiv kode - Kompliserende SCCM

En god arkitektur forenkler varianthåndtering Tre-lags arkitektur er et godt utgangspunkt Web-klient Windows-klient Felles funksjonalitet DB spesifikk OS spesifikk Språkdefinisjoner Særegenheter for GUI, operativ- og databasesystem i adskilte komponenter Data-definert oppførsel (eks. språk,kundesegment)

Kravhåndtering er viktig i endringsprosessen Hvordan dokumenteres og formidles krav? 2. Analysere Hvordan passer kravet inn i eksisterende system og produktstrategi? Hvordan motivere brukere til å kommunisere behov? 1. Samle inn 5. Levere Endringsprosess 3. Prioritere 4. Gjennomføre Populære smidige metoder anbefaler en iterativ kravprosess også under initiell utvikling!

Kontraktstyper som forutsetter veldefinert omfang er vanskelig å bruke under videreutvikling Nye krav framkommer iterativt 1. Samle inn 2. Analysere Endringsprosess 3. Prioritere Hvem betaler? I praksis vil mange bruke kombinasjon av fastpris og timepris 5. Levere 4. Gjennomføre Kommersielle avklaringer må integreres i endringsprosessen Fra PS2000:

SCCM er sentralt ved testing før leveranse 2. Analysere 1. Samle inn 3. Prioritere 4. Gjennomføre 5. Levere Endre Lage konfigurasjon for test Teste Lage release Hvilke feil er utestående? Hvilken versjon skal testes? Hvilke testcase skal kjøres? SCCM også av testdata!

God SCCM kommer brukerne til gode Hvordan oppgraderer jeg fra tidligere versjon? Hvilke features har den nye versjonen? Hvordan melder jeg endringsønsker?

God SCCM kommer utviklere til gode Hvilke endringer har jeg ansvar for? Hvilken versjon og variant gjelder endringen? Hvorfor er denne programkoden endret?

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?

Kognitiv kapasitet er en kritisk begrensning i systemutvikling God SCCM frigjør kapasitet til kreativt arbeid

Når er SCCM irrelevant? Én utvikler lager én versjon av ett system facebook google MS-Dos Men så populært dette ble da Opprinnelig kodebase lever ofte lenge!

Dosering av SCCM må tilpasses behov Uformelle vs. formaliserte rutiner. Husk å gjøre cvs checkin og slukk lyset før du går Enkle vs. state-of-the-art verktøy Subversion klient Subversion server

Behovet er større i store prosjekter Antall kommunikasjonsveier øker kvadratisk (n 2 -n)/2 n=3 n=5 n=8 n=16 3 10 28 120 og i desentraliserte prosjekter

Behovet også større for Innkapslet programvare Sikkerhetskritisk programvare Virksomhetskritisk programvare

Bruk av verktøy for versjonskontroll

Typisk arkitektur i versjonskontroll-systemer Eclipse IDE CVS-client Eclipse IDE CVS-client Privat arbeidsområde Privat arbeidsområde Inter nett CVS-tjener Inter nett a.java CVS repository b.doc Build.xml c.lib

Endringssyklus sett fra utvikler Etablere arbeidsområde for neste release Ta eierskap til endring Sjekke ut fil(er) Endre fil(er) Teste lokalt Timer Minutter Uker Sjekke inn alle endrede filer Release

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)

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? 1.0.1 HalloVerden.java 0.9 1.0 1.1 2.0 Release1 Bug release1 Release2

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) Fil 1 Fil 2 Fil 3 Fil n R1 = Navngitt versjon, inngår i release R1 R1 R1 R1 R1 R1 kan da enkelt gjenskapes, med kommando som (> cvs checkout -r R1)

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 branch 1.16.1 1.16 1.17

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 Bugforgreninger inn i Mainline Her varierer verktøystøtten

Pessimistisk vs. optimistisk håndtering av parallellitet Pessimistisk (SCCS, Clearcase ) checkout fil1: OK checkin fil1:ok tid checkout fil1: Error checkout fil1: Ok Optimistisk (CVS, Subversion) checkout fil1: OK checkin fil1:ok tid checkout fil1: Ok checkin fil1: Conflict

Verktøy for endringshåndtering

Verktøy gjør det enklere å holde oversikten over endringsforespørsler jira telelogic change clearquest testtrack

Mange gode open-source alternativer finnes bugzilla RT mantis trac

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

Mine endringer og fleksible søk gir god oversikt Søkekriterier Resultat

Integrasjon med versjonskontrollsystem er nyttig Utvikler utfører en endring, og sjekker inn kode: >> CVS commit m ID=1 State=KlarTilSystemTest Feil bruk av peker CVS oppdaterer endringsdatabase + Enkelt for utvikler + Ta vare på sammenhenger mellom logiske endringer og kodeendringer

Nyttig å vise sammenhenger mellom logiske endringer og kodeendringer CR 2 CR 1 CR 3 b.java a.c CR = Change Request

Bygging: Store programsystemer består av komponenter som utgjør en avhengighetsgraf System.exe Clib.lib Javalib.jar Externallib.jar Fil.o Fil.class Fil.cpp Fil.h Fil.java system.exe: clib.lib javalib.jar externallib.jar o:.cpp gcc $.cpp o $.o Byggeverktøy hjelper til med å regenerere komponenter ved behov

Byggeregler bør være sentralt definert IDE er som Eclipse oppmuntrer til å definere lokale byggeregler Dette skalerer dårlig for større prosjekter

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

Fullt ut repeterbar bygging kan være krevende Krever i prinsippet konfigurasjonsstyring av Kildefiler Dokumentasjon Eksterne/interne biblioteker Generatorverkøy, som kompilatorer Byggeregler

Avansert emner Hvem skal eie SCCM-systemene? Versjonsstyring av data 25000 20000 15000 10000 5000 Start of study Trendmålinger basert på SCCM-data 0 A B Q1-05 Q2-05 Q3-05 Q4-05 Q1-06 Q2-06 Q3-06 Q4-06 Q1-07 Q2-07

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!

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

Versjonsdatabaser inneholder verdifull informasjon for prosjektevaluering SCCM repository 25000 20000 15000 10000 5000 Start of study Fix vs. enhance Analyse av produktivitet Endringsintensitet Antall feil, og alvorlighetsgrad Andel feil vs. forbedringer Identifisere problematiske komponenter 0 A B Q1-05 Q2-05 Q3-05 Q4-05 Q1-06 Q2-06 Q3-06 Q4-06 Q1-07 Q2-07 Prosess og produktforbedring

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?