maintenance problems - measuring maintenance characteristics
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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
Spørsmål?