Varför misslyckas projekt?



Relevanta dokument
Statistiska undersökningar

Beskrivande statistik Kapitel 19. (totalt 12 sidor)

Att klassificera mätningar. Produktinterna attribut. 3 Ramverk för mätning. 4. Empiriska undersökningar 5. Insamling av mätdata 6.

Att avgöra prediktionsprecision av ett verktyg. 12 M aking process predictions. Uppskattning av kostnad och arbetsinsats för ett projekt

Statistikens grunder HT, dagtid Statistiska institutionen

ANDREAS REJBRAND Matematik Numeriska serier. Andreas Rejbrand, april /29

Föreläsning 2 Deskription (forts). Index Deskription: diagram som stapeldiagram, histogram mm (tex spridningsdiagram, Mera om mätnivåer

Grunderna i SQL del 1

I addition adderar vi. Vi kan addera termerna i vilken ordning vi vill: = 7 + 1

Olika typer av variabler och skalor. 1. Nominalskala 2. Ordinalskala 3. Intervallskala 4. Kvotskala. Intervallskala. Nominalskala.

Kvantitativ forskning C2. Viktiga begrepp och univariat analys

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Skolverkets förslag till kursplan i matematik i grundskolan. Matematik

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Statistik 1 för biologer, logopeder och psykologer

Explorativ övning 9 RELATIONER OCH FUNKTIONER

Vad är statistik? Kapitel 1 handlar om. Praktisk statistik kapitel 1. Vad är statistik? Grundbegrepp

28 Lägesmått och spridningsmått... 10

Statistik Lars Valter

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

En snabb titt på XML LEKTION 6

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Språket Python - Del 1 Grundkurs i programmering med Python

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

MATEMATIK 3.5 MATEMATIK

Tentamen i Matematisk statistik Kurskod S0001M

TATA42: Föreläsning 10 Serier ( generaliserade summor )

Sätt att skriva ut binärträd

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

STOCKHOLMS UNIVERSITET HT 2007 Statistiska institutionen Johan Andersson

Tentamen på. Statistik och kvantitativa undersökningar STA101, 15 hp. Torsdagen den 23 e mars Ten 1, 9 hp

Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R

Spinning. (cm) a) Ange ett uttryck för fyrhörningens omkrets i enklast möjliga form. (2/0)

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Statistik. Det finns tre sorters lögner: lögn, förbannad lögn och statistik

Mectec Elektronik AB Agnesfridsvägen Malmö, Sverige Tel Fax

Symbolisk data. quote. (define a 1) (define b 2) (jacek johan david) (list a b)

parametriska test Mätning Ordinalskala: Nominalskala:

STOCKHOLMS UNIVERSITET VT 2009 Statistiska institutionen Jörgen Säve-Söderbergh

MATEMATIK. Ämnets syfte

Tema Linjär optimering

Hemuppgifter till fredagen den 16 september Exercises to Friday, September 16

Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014

Automatiska etikettapplikatorer

i LabVIEW. Några programmeringstekniska grundbegrepp

Facit till Några extra uppgifter inför tentan Matematik Baskurs. x 2 x

Mattestegens matematik

8-4 Ekvationer. Namn:..

Föreläsning G70 Statistik A

Vardagsord. Förstår ord som fler än, färre än osv. Har kunskap om hälften/dubbelt. Ex. Uppfattning om antal

natur och miljö Syfte

Digitalt lärande och programmering i klassrummet

Lektionsanteckningar 2: Matematikrepetition, tabeller och diagram

Inkapsling (encapsulation)

Objektorienterad programmering

MA 1202 Matematik B Mål som deltagarna skall ha uppnått efter avslutad kurs.

Dekomponering av löneskillnader

DE FYRA RÄKNESÄTTEN (SID. 11) MA1C: AVRUNDNING

LULEÅ TEKNISKA UNIVERSITET Ämneskod S0006M Institutionen för matematik Datum Skrivtid

K3 Om andra ordningens predikatlogik

Användarmanual för mätdatabasen Malin

Vad är det? Översikt. Innehåll. Vi behöver modeller!!! Kontinuerlig/diskret. Varför modeller??? Exempel. Statiska system

K L Ä M. Klassificeringsmodell för inlärningssvårigheter i matematik

kvoten mellan två på varandra följande tal i en talföljd är konstant alltid lika stor.

Södervångskolans mål i matematik

Innehåll. Styrdon (ej i boken) Fitts lag (sidan ) Natural user interfaces. Kap 6.2.9, , Kap

Övningstenta (Kursplan 2011) Ver 2015,

Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.

Analytisk relationsdatabasdesign

Deskriptiv statistik. Andrew Hooker. Division of Pharmacokinetics and Drug Therapy Department of Pharmaceutical Biosciences Uppsala University

Föreläsning 6: Introduktion av listor

INDUKTION OCH DEDUKTION

Tentamen, Algoritmer och datastrukturer

Läs noggrant informationen nedan innan du börjar skriva tentamen

Prov Antal uppgifter Uppgiftsnummer Rekommenderad provtid

Från osäkerhet till säkerhet ISO för mätning

Enkäten inleds med några frågor om demografiska data. Totalt omfattar enkäten 85 frågor år år år. > 60 år år.

Design och underhåll av databaser

Föreläsningsanteckningar och övningar till logik mängdlära

Abstrakt algebra för gymnasister

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

Statistikens grunder. Mattias Nilsson Benfatto, Ph.D

Databasdesign. E-R-modellen

Objektorienterad programmering

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

Hands-On Math. Matematikverkstad. Förskolans nya läroplan 1 juli Matematik är en abstrakt och generell vetenskap

RDA Kapitel 10. RDA Kapitel 10. Att identifiera familjer/släkter

S... Infraröd fjärrstyrning combi-lås vridskiva Växelspår traverskörmotor DH2000

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

(Data)Modellering. nikos dimitrakas rum 2423

Linjär regressionsanalys. Wieland Wermke

Kompetenser och matematik

Tips och tricks 1 Cadcorp SIS

men borde vi inte också testa kraven?

Programmering A. Johan Eliasson

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

Lektion 3. Anteckningar

Transkript:

Viktigt... och svårt tid kostnad kvalitet VT01 2I1251/PV2 Programvarumetrologi/Mått och modeler Terttu Orci 7 Varför misslyckas projekt? You can't control what you can't measure. Tom DeM arco You cannot predict what you cannot measure. Norman Fenton VT01 2I1251/PV2 Programvarumetrologi/Mått och modeler Terttu Orci 8 4

Problem relaterade till mätning i programvaruutveckling Okunnighet Mätningen bristfälig i stringensoch i omfång Mätbara målför utveckling saknas Storlek,användarvänlighet,ti lförlitlighet, underhålbarhet,. Man tror pårykten om nya metoders förträfflighet -utan att kräva mätresultat - Försäljarmetrics 9 Försäljarmetrics Vår nya teknik garanterar 100% ti lförlitlighet! Vårt nya verktyg höjer produktiviteten med 200%! Skapa koden med halva bemanningen i en kvartstid! Minska testtiden till2/3! 10 5

Mätning i vardagen M edicinska system -> ställa diagnoser Atmosfärssystem -> göra väderprognoser Mäta längden på barnen -> kunna köpa rätt storlek i kläder Radarsystem -> upptäcka flygplan genom moln sträcka = hastighet * tid 11 Software engineering Ekvationen? resurser process produkt E = as b 12 6

Olika slags mätningar Assessment - kolla läget, mäta existerande ting Prediktion - uppskattning, mäta ting som inte existerar ännu 13 Exempel Uppskattning av arbetsinsats och tid i ett projekt Mätning av produktivitet Tillförlitlighetsmätning (= uppskattning) Prestandamätning Mätning av komplexitet 14 7

Historik av Software Metrics 70-talet:Källkodsmätning SLOC, Halstead, McCabe 80-talet:Kostnadsuppskattningsmodeller och designmått COCOMO, funktionspunkter 90-talet:Mätteori och systematisk processoch produktförbättring Fenton, CMM,. 15 2. The Basics of Measurement Representationell mätteori Mätning och modeller Skalor och skaltyper 16 8

Informell definition av mätning Measurement is the process of empirical, objective assignment ofnumbers to the properties of objects and events of the real world in such a way as to describe them. L. Finkelstein, 1981 17 Informell definition av mätning Measurement is the process by which numbers or symbols are assigned to attributes of entities in the real world, in such a way as to describe them according to clearly defined rules. N. E. Fenton, 1991 18 9

Informell definition av mätning Measurement is the process of assigning symbols, usually numbers, to represent an attribute of the entity of interest, by rule. M. Shepperd, 1995 19 Begrepp Entitet - ett objekt eller en händelse Attribut - en egenskap av en entitet M ått - mätenhet/skala Mätningen måste utföras enligt väldefinierade regler så att resultatet är upprepningsbart -> objektivt 20 10

Entitet Attribut Mått Person Ålder #år vid senaste födelsedag #mån sedan födelsen Källkod Storlek #Lines of Code (LOC) Testprocess Felfrekvens #fel/dag 21 Mätningens tre-enighet Entitet - objektet vi mäter Attribut - egenskapen hos objektet vi mäter Mått - måttet vi använder 22 11

Tre-enigheten viktig Storleken är 50 KLOC - entitet saknas Koden har FOG index60 - attribut saknas Koden har storleken 50000 - mått saknas 23 Undvik vanliga misstag Treenigheten Entiteten måste definieras precist (mätning av längden med skorna på) Det måste finnas en rimlig intuitiv förståelse av attributet innan man föreslår mätning 24 12

Intuitiv förståelse för attributet? Intelligens - IQ test? Intelligens? Verbal förmåga? Problemlösningsförmåga? Kodkvalitet? Låg defekttäthet? Komplexitet? 25 Komplexitet av kod A B C B mer komplex än A C > A? B > C? 26 13

Övning Definiera kvalitet av programmerare Definiera kvalitet av kod Definiera komplexitet av kod 27 Ranking Vinprovning - provarens preferens Hundutställningar - domarens preferens Paper review till konferens - granskarens preferens Man har ännu inte common consensus för att mäta 28 14

Frågeställningar-1 Hur mycket måste man veta om ett attribut innan det är meningsfullt att börja tänka på att mäta det? Vet vi tillräckligt mycket om programkomplexitet för att mäta det? Hur vet vi att vi verkligen har mätt just attributet som vi avsåg? #fel som hittats i testfasen, mäter det kvalitet av test, eller kvalitet av kod före/efter testfasen, eller vad? 29 Frågeställningar-2 Vilken typ av meningsfulla utsagor kan vi göra om attribut och entiteter som har dessa attribut? Är det meningsfullt att tala om 20% ökning av designens kvalitet? Vilka meningsfulla operationer kan vi applicera på mätningar? Kan vi beräkna medelproduktiviteten för en grupp av personer? 30 15

Representationell mätteori Empiriska relationssystem Numeriska relationssystem Avbildningsregler Representationsvillkor 31 Mäta storlek? - empiriska relationer Olle Pelle Olle är längre än Pelle och Pelle är längre än Kalle Kalle är lång längre än är mycket längre än 32 16

Mäta storlek? - numeriska relationer 150 150 <= x <= 230 151 153 152 mängdtillhörighet: x tillhör mängden stora om x > 170 > ordningsrelationen mellan talen x mycket större än y: x > y+20 33 Empiriskt relationssystem E = (C,R) där C = {x x är entitet} R = {R 1,,R n } R i en empirisk relation på C för alla i = 1,,n 34 17

E = (C,R) där Exempel på ett empiriskt relationssystem C = {Olle, Pelle, Kalle} R = { längre än } längre än = {(Olle,Kalle),(Kalle,Pelle),(Olle,Pelle)} 35 Exempel på ett numeriskt relationssystem N = (I,P) I ={x: x heltal och 150 <= x <= 230} P = {P 1,P 2,P 3 } P 1 = {x x ε I och x >= 180} P 2 = {(x,y) x,y ε I och x > y} P 3 = {(x,y) x,y ε I och x > y+15} 36 18

Empiriska och numeriska E = (C,R) C = {Olle, Pelle, Kalle} R = {R 1,R 2,R 3 } R 1 = {x x ε C och x är lång} R 2 = {(x,y) x,y ε C och x är längre än y} R 3 = {(x,y) x,y ε C och x är mycket längre än y} N = (I,P) I = {150, 160, 180} P = {P 1,P 2,P 3 } P 1 = {x x ε I och x >= 180} P 2 = {(x,y) x,y ε I och x > y} P 3 = {(x,y) x,y ε I och x > y+15} 37 Mäta storlek? - avbildning M Olle M: Olle avbildas på 180, Pelle R1 på P1, R2 på P2,... Pelle M Kalle 150 160 180 38 19

E = (C,R) C = {Olle, Pelle, Kalle} R = {R 1,R 2,R 3 } R 1 = {x x ε C och x är lång} = {olle} E och N R 2 = {(x,y) x,y ε C och x är längre än y={(olle,pelle),(pelle,kalle),(olle,kalle)} R 3 = {(x,y) x,y ε C och x är mycket längre än y}= {(olle,pelle),(olle,kalle)} N = (I,P) I = {150, 160, 180} P = {P 1,P 2,P 3 } P 1 = {x x ε I och x >= 180}= {180} P 2 = {(x,y) x,y ε I och x > y}={(180,160),(180,150),(160,150)} P 3 = {(x,y) x,y ε I och x > y+15} = {(180,150),(180,160)} 39 Representationsvillkor M avbildar entiteter (av verkligheten) på tal eller symboler och empiriska relationer på numeriska relationer så att de empiriska relationerna bevarar de numeriska relationerna och de empiriska relationerna bevaras av de numeriska relationerna. 40 20

Representationsvillkoret Olle längre än Kalle omm M(Olle) > M(Kalle) 41 McCabe s cyklomatiska komplexitet G G v(g) = e-n+2 = 8-7+2 = 3 v(g ) = e-n+2 = 5-4+2 = 3 Representationsvillkoret uppfyllt? 42 21

Programvarutekniska mätningar - processer,resurser och produkter personal design designdokument kodning kod resurs process produkt/ process produkt resurs 43 Vilka entitetstyper mäter man i programutveckling? Produkter kod, specifikation, dokument Processer kravanalys, design, testfas Resurser personal, programvara, maskinvara 44 22

Flera entitetstyper vi vill mäta Projekt? Hela organisationen? 45 Skaltyper Nominell Ordinal Intervall Kvot Absolut 46 23

Nominell skala E = (C,R) C = {p p är ett programfel} R = {R 1,R 2,R 3 } R 1 = {x x ε C och x är syntaxfel} R 2 = {x x ε C och x är ett semantiskt fel} R 3 = {x x ε C och x är systemfel} Varje fel är något av ovanstående, ingen överlappning Partition, klassindelning Ingen ordning mellan klasserna Vilket som helst symboliskt numeriskt relationssystem duger R 2 R 3 R 1 47 Ordinalskala - allvarsgrad av fel E = (C,R) C = {p p är ett programfel} R = {R 1,R 2,R 3,R 4 } R 1 = {x x ε C och x är syntaxfel} R 2 = {x x ε C och x är ett semantiskt fel} R 3 = {x x ε C och x är systemfel} R 4 = {(x,y) x,y ε C och x är allvarligare fel än y} Systemfel allvarligare än semantiskt fel Semantiskt fel allvarligare än syntaxfel M(syntax)=1 M (syntax)=10 M (syntax) = 3 M(sem) = 4 M (sem) = 25 M (sem) = 1 M(system)=17 M (system)=300 M (system) = 4 48 24

Ordinalskala Ordning mellan klasserna Avbildningen måste bevara ordningen Tillåtna transformationer (byte av avbildning): alla monotont stigande funktioner 49 Intervallskala E = (C,R) C = {p p är ett programfel} R = {R 1,R 2,R 3,R 4 } R 1 = {x x ε C och x är syntaxfel} R 2 = {x x ε C och x är ett semantiskt fel} R 3 = {x x ε C och x är systemfel} R 4 = {(x,y) x,y ε C och x är allvarligare fel än y och om x syntaxfel, y semantiskt fel och zsystemfel, så är skillnaden mellan x och y lika stor som mellan y och z} Systemfel allvarligare än semantiskt fel Semantiskt fel allvarligare än syntaxfel M(syntax)=1 M (syntax)=10 M (syntax)=1 M(sem) = 2 M (sem) = 20 M (sem)=17 M(system)=3 M (system)=30 M (system)=26 50 25

Intervallskala Bevarar differensen mellan klasserna Tillåtna transformationer: M = am+b, a>0 F = 9/5C+32 M = Fahrenheit M = Celsius 51? Idag är det 20C Igår var det 10C Idag är det dubbelt så varmt som igår +20 +10 0-10 -20 52 26

Kvotskala Som intervallskala samt att det finns ett noll-element, som indikerar total brist på egenskapen M = am, a>0 Kvoten mellan talen bevaras M = foot (F), M = tum (I) I = 12F 53 Absolutskala #element i en mängd entiteter Alltid av typ #antalet förekomster Inga tillåtna transformationer 54 27

Ex absolutskala LOC räknas, är det på absolutskala? Nej, LOC inte på absolutskala eftersom det är mått på storlek, och det finns olika sätt att mäta storlek, t ex #tecken. LOC är ett mått på absolutskala för attributet #rader. På samma sätt, antal år är inte ett absolutmått på ålder, utan kvotmått, eftersom ålder kan uttryckas i t ex antal år, antal månader eller i antal dagar. 55 Skaltyper Nominell Ordinal Intervall Kvot ökning av restriktion av representationsvillkoret ökad rikhet av representation förfinad mätning ökad sofistikering på mätningen Absolut ökad manipuleringsmöjlighet 56 28

Skaltyper Nominell Etikettering, klassificering av eniteter, t ex kläder med färg, bussar med turnummer Ordinal Tillförsel av ordning, t ex militära grader, preferenslistor Intervall Innehåller begreppet enhet, t ex kalendertid, temperatur (F,C) Kvot Innehåller ett nollelement;talen börjar på noll och ökar med jämna intervall, t ex ålder, längd, hastighet, temperatur i K Absolut Uppräkning, t ex #mål i en match, #personer i rummet 57 Nominell Skaltyper med tillåtna transformationer -1 Empirisk relation: ekvivalensrelation har samma klass som Tillåtna transformationer: alla 1:1 Ordinal Empiriska relationer: som nominell+ordningsrelation Tillåtna transformationer: alla strikt monotont stigande funktioner Intervall Empiriska relationer: som ordinal + känd kvot av godtycklig intervall Tillåtna transformationer: M = am + b, a>0 58 29

Skaltyper med tillåtna transformationer -2 Kvot Empiriska relationer: som intervall + känd kvot av godtyckliga skalvärden Tillåtna transformationer: M = am, a>0 Absolut uppräkning Tillåtna transformationer: identitet M =M, dvs inga 59 Meningsfulla utsagor En utsaga som innehåller numerisk skala är meningsfull om dess sanningsvärde är oberoende av att varje skala M ersätts med en skala enligt tillåten transformation M. Temperaturen i Tokio idag dubbelt den i London M = Celsius M(Tokio)=40 M(London)=20 M = Fahrenheit M (Tokio)=104 M (London)=68 sant falskt 60 30

Vad kan vi göra med mätvärden på olika skalor? Nominell skala 20 entiteter sorteras efter färg röd 3 grön 4 gul 6 svart 2 vit 4 blå 1 Typvärde Frekvens Median Medelvärde 61 Vad kan vi göra med mätvärden på olika skalor Ordinal skala 20 entiteter rankas efter svårighet: enkel, mellansvår, svår Typvärde enkel 5 mellansvår 12 svår 3 Frekvens Median Medelvärde 62 31

Vad kan vi göra med mätvärden på olika skalor Intervallskala 10 dagars temperaturer mäts: 20 23 19 15 18 20 21 19 16 15 Typvärde Frekvens Median Medelvärde (aritmetiskt) Standardavvikelse Varians 63 Vad kan vi göra med mätvärden på olika skalor Kvotskala 10 leveransers storlek i KLOC mäts: 20 35 9 70 82 24 17 100 62 15 Typvärde Frekvens Median Medelvärde (aritmetiskt och geometriskt) Standardavvikelse Varians 64 32

Direkt resp indirekt mätning Direkt mätning av ett attribut för en entitet involverar inga andra attribut eller entiteter storleken av kod i LOC tidsåtgång för testprocessen (timmar, dagar) #upptäckta defekter i kodgranskning (uppräkning) Indirekt mätning produktivitet = kodstorlek/tid defekttäthet för en modul (#defekter/modulstorlek) kravens stabilitet (#initiala krav/#krav totalt) systemspill (arbetsinsats för felfix/total arbetsinsats för utveckling) 65 Direkt vs indirekt 100 50 0 A B C D E # fel per modul (direkt) 160 140 120 10 0 80 60 40 20 0 A B C D E Feltäthet = # fel/kloc (indirekt) 66 33

Interna (statiska) Typ av attribut kan mätas genom att studera entiteten t ex kodens storlek i LOC t ex #beroenden mellan modulerna i ett system Externa (dynamiska) kan mätas genom att studera hur entiteten förhåller sig till sin omgivning t ex #fel som användaren råkar ut för t ex svårighetsgraden av att navigera mellan skärmar t ex tid det tar att söka i databasen 67 Prediktion Hur många sidor (s) källkod kommer att skrivas ut på printern? s = x/a x = programlängd i LOC a = genomsnittligt LOC/sida 68 34

Prediktionssystem Def. Ett prediktionssystem är en matematisk modell, med procedurer för bestämning av modellparametrarna och för tolkning av resultatet. Uppskattning av arbetsinsats E i personmånader E = as b S = storlek i LOC a,b konstanter 69 Utökat numeriskt system M: E -> R 1 x x R n Köpa jeans Pris Kvalitet Hur dom sitter Färg Märke Implicit ranking (p,k,s,f,m) 70 35

Exempel på utökat numeriskt system - olika skalor på delarna? E = 2.7v+121w+26x+12y+22z-497 E = arbetsinsats (effort) v = #instruktioner w = subjektiv komplexitetsranking x = #interna dokument y = #externa dokument z = storlek w på ordinal skala z på kvotskala övriga på absolutskala E på ordinal skala -det lägsta 71 Identifiera attribut för entiteter Stegen i formell mätning Identifiera empiriska relationer E för attributen Identifiera motsvarande numeriska relationer N Definiera avbildning från entiteterna till tal Kontrollera att N bevarar och bevaras av E 72 36