Line Ånderbakk Olsen Thor Ånderbakk Olsen 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 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
GLD systemene
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 Ad-hoc Uformell prosess Få eller ingen metoder som sikrer gjenbruk Gjenbruk oppstår ved tilfeldigheter Individuelt nivå ”Klipp-og-lim” Systematisk gjenbruk Formell, konsistent og repeterbar prosess Planlagt gjenbruk Organisasjonelt nivå Krever investreringer Mulig å måle gjeldende nivå
State-of-the-art of Software Reuse Fordeler Økt kvalitet Økt produktivitet og redusert utviklingstid Forbedret interaksjon mellom ulike systemer Reduserte kostnader Enklere å e stimere tid og kostnad Problemer Støtte og forståelse fra ledelse og utviklere Arkitektur som understøtter gjenbruk Lagre, klassifisere og identifisere gjenbrukbare komponenter
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) 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 Nivå B ”Monitored” i RMM 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 Fordeler Ulemper 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 Ulemper Geografisk avstand mellom oss og SKD Usikkerhet rundt GLD systemenes fremtid Mangelfull dokumentasjon rundt systemene