370 likes | 495 Views
Study of Software reuse at Skattedirektoratet Master’s thesis oral exam, 24 May 2008. Line Ånderbakk Olsen Thor Ånderbakk Olsen. Disposisjon. Skattedirektoratets IT-avdeling Problembeskrivelse Forskningsspørsmål SKDs mål med oppgaven State-of-the-art of Software Reuse
E N D
Study of Software reuse at SkattedirektoratetMaster’s thesis oral exam, 24 May 2008 Line Ånderbakk Olsen Thor Ånderbakk Olsen
Disposisjon • Skattedirektoratets IT-avdeling • Problembeskrivelse • Forskningsspørsmål • SKDs mål med oppgaven • State-of-the-art of Software Reuse • Presentasjon av hvert enkelt tema • Konklusjon • Videre arbeid • Refleksjoner
Skattedirektoratets IT-avdeling • En av landets største når det kommer til datamengde og antall brukere • Ca. 220 ansatte
GLD systemene • Eldre systemer som stammer tilbake fra slutten av 80-tallet • Skrevet i COBOL og kjører på SKDs stormaskin • I alt finnes det 15 GLD systemer • Hovedformålet med GLD-systemene er å motta og lagre skatterelatert informasjon fra tredjepart og for forhåndsutfylling av selvangivelse
Forskningsspørsmål • RQ1: What is the current state of software reuse in the selected GLD systems? • RQ2: Do reused components have lower change and defect rate compared to other components? • RQ3: What is the emphasis for systematic reuse in the current development process? • RQ4: What is the potential for systematic reuse, and how can it be achieved?
SKDs mål med oppgaven • Goal 1: Propose a process which assures software reuse • Goal 2: Propose an ideal architecture for GLD, with focus on reuse
Tema • State-of-the-art innen programvaregjenbruk • Undersøkelse av nåværende gjenbruksnivå i GLD-systemene • Gjennomgang av SKDs utviklingsprosess • Gjennomgang av muligheteter for systematisk gjenbruk innen SKD
Bidrag • Litteraturgjennomgang om programvaregjenbruk • Estimat av gjenbruksnivå i de valgte GLD-systemene • Spørreundersøkelse om programvareutviklingsprosess og gjenbruksaspekter hos SKD • Forslag til prosess som skal sikre systematisk gjenbruk innen SKD
State-of-the-art of Software Reuse • Programvaregjenbruk vil si å skape nye systemer ut fra eksisterende komponenter og systemer • ”Alt” kan gjenbrukes: • Arkitektur • Kildekode • Dokumentasjon • GUI • Kravspesifikasjoner
State-of-the-art of Software Reuse • Systematisk gjenbruk • Formell, konsistent og repeterbar prosess • Planlagt gjenbruk • Organisasjonelt nivå • Krever investreringer • Mulig å måle gjeldende nivå Ad-hoc • Uformell prosess • Få eller ingen metoder som sikrer gjenbruk • Gjenbruk oppstår ved tilfeldigheter • Individuelt nivå • ”Klipp-og-lim”
State-of-the-art of Software Reuse • Problemer • Støtte og forståelse fra ledelse og utviklere • Arkitektur som understøtter gjenbruk • Lagre, klassifisere og identifisere gjenbrukbare komponenter Fordeler • Økt kvalitet • Økt produktivitet og redusert utviklingstid • Forbedret interaksjon mellom ulike systemer • Reduserte kostnader • Enklere å e stimere tid og kostnad
State-of-the-art of Software Reuse Gjenbruksperspektiver
State-of-the-art of Software Reuse Fremgangsmåter for programvare gjenbruk • Applikasjonsgeneratorer • Programvarearkitektur • Komponenter • ”Code Scavenging”
State-of-the-art of Software Reuse Flere ikke-tekniske aspekter å ta hensyn til: • Menneskelige • Kulturelle • Økonomiske • Organisatoriske
State-of-the-art of Software Reuse • Organisasjoner må være i stand til å måle fremgang og identifisere hensiktsmessige gjenbruksstrategier • Hudson og Koltuns Reuse Maturity Model består av følgende 5 faser: • 1. Initial/Chaotic • 2. Monitored • 3. Coordinated • 4. Planned • 5. Ingrained
State-of-the-art of Software Reuse Hvordan oppnå systematisk programvaregjenbruk? • Program for gjenbruk • Endringer i utviklingsprosess • Endringer i organisasjon • Pilotprosjekt Figuren viser fire samvirkende prosesser som inngår i systematisk gjenbruk
Valg av empiriske fremgangsmåter • Både kvalitative og kvantitative fremgangsmåter ble benyttet: • Møter med utviklere • Gjennomgang av systemdokumentasjon • Analyse av kildekode • Gjennomgang av utviklingsprosess • Intervju • Spørreundersøkelse
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) • Benyttet følgende fremgangsmåter: • Gjennomgang av dokumentasjon og programbeskrivelser for alle GLD systemer • Analyse av kildekode for utvalgte programmer • Kartlegging av modenhetsnivå i henhold til Koltun og Hudsons ”Reuse Maturity Model” (RMM)
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) 1. Gjennomgang av dokumentasjon og programbeskrivelser for alle GLD systemer • Hensikten var å identifisere komponenter brukt på tvers av applikasjoner • Kryss-sjekket alle programmer beskrevet i programbeskrivelsene
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) 1. Gjennomgang av dokumentasjon og programbeskrivelser for alle GLD systemer
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) 1. Gjennomgang av dokumentasjon og programbeskrivelser for alle GLD systemer • Fire programmer ble brukt på tvers innen GA/LTO systemet • Ett program ble brukt på tvers i de resterende 14 GLD systemene
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) 2. Analyse av kildekode for utvalgte programmer • Hensikten var å identifiserte likheter i programmer mellom • Årsversjoner • Forskjellige GLD systemer • Benyttet ulike verktøy • Winmerge (for å finne differanser) • Egenutviklede programmer i Java
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) 2. Analyse av kildekode for utvalgte programmer • I gjennomsnitt 60% felles kodelinjer i programmer mellom forskjellige GLD systemer
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) 2. Analyse av kildekode for utvalgte programmer • Vi identifiserte mellom 97-99% felles kodelinjer mellom programmer for ulike årsversjoner
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) 3. Koltun og Hudsons RMM • Hensikten var å tilby en kvantitativ indikator for gjeldende gjenbruksnivå i de valgte GLD systemene • Vi benyttet en fremgangsmåte som fastslo modenhetsnivået ut i fra tre faktorer for gjenbruk: • Repository structure (r) • Software development architecture (s) • Administrative management (g) • Beregnet gjenbruksnivå med formel:
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) 3. Koltun og Hudsons RMM • Formelen gav 5.41 poeng, altså er GLD systemene på nivå B ”Monitored”
Undersøkelse av nåværende gjenbruksnivå i GLD-systemene (T2) Begrensinger ved fremgangsmåter • SKDs programdokumentasjon var ufullstendig • Dokumentgjennomgangen fant kun komponenter som ble brukt på tvers av applikasjoner • Kun CICS programmer ble gjennomgått i kildekodeanalysen • Fremgangsmåten for å kartlegge gjenbruksnivået i Koltun og Hudsons modell var lite benyttet i litteraturen
Gjennomgang av SKDs utviklingsprosess (T3) • Benyttet følgende fremgangsmåter: • Spørreundersøkelse blant 25 utviklere hos SKD • Gjennomgang av SKDs utviklingsprosess • Intervju med prosessansvarlig
Gjennomgang av SKDs utviklingsprosess (T3) 1. Spørreundersøkelse blant 25 utviklere hos SKD • Positiv holdning mot programvaregjenbruk • Gjenbruk er viktig for å oppnå fordeler som redusert utviklingstid og kostnad, høyere kvalitet etc • Det bør være mer gjenbruk enn det er i dag • Delte meninger om hvorvidt prosessen for å finne, fastsette eller gjenbruke fungerer eller ikke • Ingen klart definert måte for å gjenbruke kode eller design komponenter
Gjennomgang av SKDs utviklingsprosess (T3) 2. Gjennomgang av SKDs utviklingsprosess • Programvaregjenbruk er ikke beskrevet i utviklingsprosessen • Samtaler med utviklere bekreftet at det ikke eksisterer noen formell prosess for gjenbruk 3. Intervju med prosessansvarlig • Det ble enda en gang bekreftet at det ikke eksisterer noen formell prosess for gjenbruk
Gjennomgang av SKDs utviklingsprosess (T3) Begrensinger ved fremgangsmåter • Spørreskjema • Intervju • Møter med utviklerne
Gjennomgang av muligheteter for systematisk gjenbruk innen SKD (T4) • Benyttet følgende input: • Funn fra T1 (litteraturgjennomgang) • Funn fra T3
Gjennomgang av muligheteter for systematisk gjenbruk innen SKD (T4) Hva er potensialet for systematisk gjenbruk og hvordan kan SKD oppnå det?
Konklusjon • Høy nivå av gjenbrukte kodelinjer • Ad-hoc • Nivå B ”Monitored” i RMM • Utviklerne har positive holdninger til gjenbruk • Nåværende utviklingsprosess tar ikke hensyn til programvaregjenbruk • Endringer må til i prosessen for å oppnå et høyere nivå av gjenbruk
Videre arbeid • Introduksjon av program for systematisk gjenbruk • Identifisere innholdet i likhetene mellom programmene • Spørreundersøkelse • Gjenbrukte komponenter vs. ikke-gjenbrukte komponenter • Suksessfaktorer i systematik gjenbruk
Refleksjoner Ulemper • Geografisk avstand mellom oss og SKD • Usikkerhet rundt GLD systemenes fremtid • Mangelfull dokumentasjon rundt systemene Fordeler • Interessant og lærerikt tema, med relevans til jobben vi nå skal ut i • Stor hjelp både fra veileder og SKD • I alt er vi godt fornøyd med sluttresultatet