170 likes | 325 Views
Maintenance problems - Measuring Maintenance characteristics . Software Engineering Gruppe 2. Carl-Erik Herheim Leendert Wienhofen Thomas Julsen. Kjartan Haugen Olav Dæhli Jon Gunnar Bjørkmo. Presentasjonen. Maintenance problems Hva skyldes problemer? Vedlikeholdskostnader
E N D
Maintenance problems - Measuring Maintenance characteristics Software Engineering Gruppe 2 Carl-Erik Herheim Leendert Wienhofen Thomas Julsen Kjartan Haugen Olav Dæhli Jon Gunnar Bjørkmo
Presentasjonen • Maintenance problems • Hva skyldes problemer? • Vedlikeholdskostnader • Measuring Maintenance characteristics • Metoder for å måle vedlikeholdbarhet • Ulike typer kompleksitet • Spørsmål?
Problemer med vedlikehold • Systemet må være tilgjengelig • Brukerens kunnskaper • Feil eller utvidelse? • Utviklere • Effektivitet • Tilgjengelig tid • Tekniske problemer • Maskinkrav • Systemets pålitelighet (reliability) • Kostnader
Utviklere • Begrenset forståelse (limited understanding) • 47% av tiden er brukt til å forstå programmet som skal vedlikeholdes [1] • k * (m – k) + k * (k – 1)/2 = antall interfaces som må gjennomgås for eventuell innflytelse av endringen [2] • m = komponenter i systemet • k = antall komponenter å endre • Eksempel: 1 * (100 – 1) + 1 * (1 – 1)/2= 99 + 0 = 99 • Moral • Vedlikeholdsarbeid har ’andreklasse status’
Tekniske problemer • Arvegods fra tidligere beslutinger • Ulogisk design • Ufleksibel design • Paradigma • Fastsatte metoder • Statisk minnebehandling, e.l. • OO: endringer kan føre til kjedereaksjon • Problemer med testing • Begrenset tid • Kritiske systemer
Vedikeholdskostnader • Har gått opp fra 40-60% i ’70 tallet til opp til 80% i 2000 • Faktorer som øker kostnader • Applikasjonstype • Novelty (’nyhet’) • Turnover and staff availability • Systemets livsløp • Avhengighet av endringer i omgivelser • Hardware • Designets kvalitet • Kodekvalitet • Dokument kvalitet • Testing kvalitet
Vedlikehold ’effort’ • M = p + Kc-d • M = Total vedlikeholds ’effort’ • p = produktive ’efforts’ • d = Gjenkjennelsesgrad ’familiar with software’ • K = Emperistisk konstante • Size = ASLOC(AA + SU + 0,4DM + 0,3CM + 0,3IM)/100
Measuring Maintenance Characteristics • External view of maintainability • Mean Time To Repair • Internal attributes affecting maintainability • Cyclomatic Number • Kompleksitet • Fog Index
External view • Mean Time to Repair • Når er problemet rapportert • Tid tapt p.g.a. administrative forsinkelser • Tid brukt på å analysere problemet • Tid brukt på å spesifisere endringer som må gjøres • Tid brukt på å gjennomføre endringene • Tid brukt på å teste endringene • Tid brukt på å dokumentere endringene
Internal Attributes Affecting Maintainability • Kompleksitet • Dokumentasjon
Cyclomatic Number • Antall lineært uavhengige stier gjennom koden • Control Flow Graph • CN = e – n + 2
Cyclomatic Number Når er dette nyttig? • Code development risk analysis • Change risk analysis in maintenance • Test Planning • Reengineering
Flere målbare ting og tang • Størrelse • Antall linjer kode • Kompleksitet • Nested if’s • Antall operatorer & operands • Antall revisjoner under design
Fog Index • Dokumentasjonens lesbarhet • F = 0,4 * (antall ord / antall setninger) + prosentandel ord med 3 eller flere stavelser
Oppsummering Presentasjonen er publisert på: http://www.cognit.no/leendert/sfteng/presentasjoner
References [1] Parikh & Zvegintzov (1983) [2] Gerlich & Denskat (1994) [3] Shari, Lawrence & Pfleeger: Software engineering, theory and practice, 2nd edition (2001) [4] Calzolari, Tonella, Antoniol: Dynamic model for maintenance and testing effort