F2 3. Ramverk för mätning 4. Empiriska undersökningar 5. Insamling av mätdata 6. Analys av mätdata Entitetstyper Att klassificera mätningar produkt process resurs projekt Attributtyper interna externa Mått direkta indirekta 2I1251/PV2 Programvarumetrologi/Mått och modeler Terttu Orci 1 3 3 Ramverk för mätning Produktinterna attribut Klassificeringav mätningar A t bestämma vadsom ska mätas A tvalidera måt och prediktionssystem Specifikation Design Kod INTERNA ATTRIBUT funktionalitet syntaktisk korrekthet coupling, cohesion funktionalitet modularitet återanvändbarhet funktionalitet algoritmisk komplexitet 2I1251/PV2 Programvarumetrologi/Mått och modeler Terttu Orci 2 4 1 2
Produktexterna attribut Processexterna attribut EXTERNA ATTRIBUT EXTERNA ATTRIBUT Specifikation Design förståbarhet underhållbarhet kvalitet komplexitet underhållbarhet Specifikationsfas Detaljdesign kvalitet, kostnad, stabilitet kostnad kostnadseffektivitet Kod tillförlitlighet användbarhet underhållbarhet Test kostnad kostnadseffektivitet 5 7 Processinterna attribut Resursinterna attribut Specifikationsfas INTERNA ATTRIBUT tid, arbetsinsats, #kravändringar Personal Teams INTERNA ATTRIBUT ålder pris kommunikationsnivå Detaljdesign Test tid, arbetsinsats, #specifikationsfel som hittats tid, arbetsinsats, #fel funna Programvara M askinvara Lokaler pris pris, prestanda, minnes, temperatur belysning, ventilation 6 8 3 4
Resursexterna attribut GQM - att bestämma vad som skall mätas Personal EXTERNAL ATTRIBUT produktivitet erfarenhet intelligens GQM - Goal-Question-Metric Viktor Basili SEL, Univ of Maryland Teams produktivitet kvalitet G generera Programvara användbarhet tillförlitlighet Q 1 Q 2. Q n analysera Maskinvara Lokaler tillförlitlighet bekvämlighet, kvalitet M 1 M 2. M m 9 11 Att bestämma vad som ska mätas Syfte,kostnad/arbetsinsats att mäta SEI- start with basic metrics set tid,kostnad,feldensitet i kod GQM - Goal-Question-M etrics Enligt en kvalitetsmode l CMM. Anslagsgivare t ex EU kräver GQM-paradigm Lista huvudsakliga målen (G)för utvecklingseller underhållsprojektet Eventuellt dela upp målen i delmål Från varje mål, härled frågor (Q)som behöver svaras på för att kunna kolla måluppfyllelsen Bestäm vad som måste mätas (M)för att svara på frågorna på rätt sätt 10 12 5 6
GQM G. Utvärdera effektiviteten av en viss standard Q1. Vem använder standarden? Q2. Hur är Q3. Vad är kodens produktiviteten av kvalitet? programmerare? FIGURE5.THE FOUR PHASES OF THE GOAL / QUESTION / METRIC METHOD M1. Andelen av programmerare som använder standarden M2. Programmerarnas erfarenhet av standarden, språket, miljön M4. Kod M3. Arbetsinsats M5. #Fel 13 15 GQM Mallar G1. Att förbättra kvaliteten av kraven Q1. Är kraven klara och möjliga att förstå? G. Att förbättra produktkvaliteten...... Q2. Är kraven testbara? M1. #krav M2. M3. #krav/kravtyp #förändringar Syfte:att (karakterisera, evaluera, prediktera, motivera) (process, produkt, modell, mått) för att (förstå, utvärdera, styra, konstruera, lära sig, förbättra) den/det. Perspektiv:Undersök (kostnad, effektivitet, korrekthet, defekter, ändringar) från (utvecklare, ledning, kund):ens synvinkel. Miljö:Miljön utgörs av följande: processfaktorer, mänskliga faktorer, problemfaktorer, metoder, verktyg, constraints. Att evaluera e fektivitetenav underhållsprocessen för att förbättra den från ledningenssynvinkel. Underhållsgruppen består av mindre motiverade personer med begränsade verktygsresurser. 14 16 7 8
CMM och mätning Requirements Management CMM och mätning - Software Project Tracking and Oversight Status of each of the allocated requirements Change activity for the allocated requirements Cumulative number of changes to the allocated requirements, including total number of changes proposed, open, approved and incorporated into the system baseline Effort and other resources expended in performing the tracking and oversight activities Change activity for the software development plan changes to size estimates of the software work products, softare cost estimates, critical computer resource estimates, and schedule 17 19 CMM och mätning Software Project Planning Completions of milestones for the software project planning activities compared to the plan (plan for planning) W ork completed Effort expended Funds expended in the software project planning activities compared to the plan (plan for planning) CMM och mätning - Software Configuration Management number of change requests processed per unit time number of completions of milestones for the SCM activities compared to the plan Work completed Effort expended Funds expended in the SCM activities 18 20 9 10
CMM och mätning - Software QualityAssurance Completions of milestones for the SQA activities compared to the plan (SQA plan = kvalitetsplan) Work completed Effort expended Funds expended in the SQA activities compared to the plan (SQA plan) #product audits and activity reviews compared to the plan (SQA plan) Management by metrics (DoD) Item Målet Oacceptabelt Defektborttagningseffektivitet >95% <70% Ursprunglig defektdensitet <4/FP >7/FP Kravändringsvolym <1% >50% Total programdokumentation <3 sid/fp >6 sid/fp Personalomsättning 1-3%/år >5%/år 21 23 CMM och mätning - Subcontract Management Costs of the activities for managing the subcontract compared to the plan (contract) Actual delivery dates for subcontracted products compared to the plan (contract) Actual dates of prime contractor deliveries to the subcontractor compared to the plan (contract) Att validera mått -1 Ettmått är valid om den karakteriserar attributet korrekt - vilket betyder att ERSomm NRS Gör stickprover - resonera - gör experiment 1. Utgå ifrån den intuitiva uppfattningen. M ät. Stämmer mätdata överens med den intuitiva uppfattningen? Olle längre än Kalle - är M(Olle)> M(Kalle)? 2. Utgå ifrån mätdata. Ta fram den intuitiva uppfattningen. Stämmer den överens med mätdata? M(Olle)> M(Kalle)- är Olle är längre än Kalle? 22 24 11 12
Exempel på validering av mått En intuitiv uppfattning är att ett valid mått av programlängden skall vara additiv, dvs att M(P1;P2) = M(P1)+M(P2). Därför LOC är valid mått av programlängd McCabe's cyclomatisk komplexitet är inte valid mått av längd eftersom V(P1;P2) = V(P1) + V(P2) - 1 Felaktiga föreställningar om validering Föreställningen att ett mått måste prediktera något. "LOC inte bra mått eftersom den inte kan prediktera tillförlitlighet"- FEL! Mått har "validerats"eller "invaliderats"genom deras korrelation till andra mått. Många studier har visat en rimlig korrelation mellan McCabe's cyklomatisk komplexitet och LOC. Det har hävdats att detta bevisar att komplexitet ökar med. Vad det visar är att antal beslutspunkter ökar med - en mycket mindre intressant slutsats. 25 27 Att validera mått -2 Ställ hypotes om mått och attributförhållandet Designa och utför ett experiment för att testa hypotesen Klasser av prediktionssystem Klass 1 (produkt-produkt): interna attribut för produkt i tidiga faser -> interna attribut i senare faser ( av spec -> av kod) Klass 2 (process/resurs-process/resurs): tidig process/resurs -> senare process/resurs (#fel funna i designgranskning -> implementeringskostnad) Klass 3 (produkt-process): internt produktattribut -> internt processattribut (graden av struktur av koden -> tid för underhåll) Klass 4 (process-process): process -> senare process (#fel i period 1 i drift -> #fel i period n i drift) 26 28 13 14