Metrikker og målte størrelser. Vi måler fakta for å bestemme systemets egenskaper



Like dokumenter
Repetisjon av testing. Vi undersøker om systemet virker slik det skal

Repetisjon av testing. Vi undersøker om systemet virker slik det skal

Statisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere

Kompleksitetsanalyse Helge Hafting Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

Kvalitet og programvare. Når bare det beste er godt nok. Produktet prosessen eller begge deler?

Eksamen TTM4120 Pålitelige systemer 18. mai 2004 LØSNINGSSKISSE

Livsløpstesting av IT-systemer

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Algoritmer - definisjon

Algoritmeanalyse. (og litt om datastrukturer)

Evaluering av It-systemer i et forvaltningsperspektiv. Drift, vedlikehold og videreutvikling av IT-systemet

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen Oppsummering

Krav. Beskriver tjenestene produktet skal håndtere Kravene kan testes

Testrapport Prosjekt nr Det Norske Veritas

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Betinget eksekvering og logiske tester i shell

Utførelse av programmer, metoder og synlighet av variabler i JSP

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Eksamen i SLI 5 høsten 1993

Estimeringsmetoder. I dag. Kostnadsestimering. Kostnader og prisfastsettelse. Ulike estimeringsmetoder. Måling av programvare. Estimeringsteknikker

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

Estimeringsmetoder. Kirsten Ribu. HiO - Kirsten Ribu

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

YouTube-kanal ITGK. Læringsmål og pensum

Debugging. Tore Berg Hansen, TISIP

Måling Hvordan ta beslutninger Estimeringsteknikker

TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner. - 3rd edition: Kapittel Professor Alf Inge Wang

Både føre vár og etter snar. Om Shift Right og Forebyggende Vedlikehold

Kom i gang med micro:bit

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Designed Sounds - File Name Size

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

GRUPPE 5, UKE 11 EVALUERING IN1050

Verdien av god leverandørtesting i konstruksjonsfasen i smidige prosjekter

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

Evaluering av brukskvalitet for et Web-grensesnitt

Forelesning 30: Kompleksitetsteori

Lærerveiledning - Straffespark

Læringsmål og pensum. if (be): else (not_to_be):

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen

Evaluering av IT-systemer Introduksjon. Monica Kristiansen

Løse reelle problemer

Innlevering 2a i INF2810, vår 2017

Kort om evaluering og testing av It-systemer. Hvordan vurdere, verdsette, velge og teste?

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen.

GJENNOMGANG UKESOPPGAVER 9 TESTING

Hvordan en prosessor arbeider, del 1

Øvingsforelesning TDT4105 Matlab

3. obligatoriske innlevering, høsten 2014

INF109 - Uke 1b

TDT4105 Informasjonsteknologi, grunnkurs

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Indikatorprosjekter om internasjonalisering - Tilnærmingsmåter, metoder og resultater

BlackBox, WhiteBox og andre testmetoder. Etter ønske fra studentene 26. november 2009

Brukskvalitet. Bruk og nytte av systemet

Oversikt Kodegenerering Variabler Setninger Uttrykk While-setningen

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Usability testing Brukertester

Brukskvalitet. Lett å bruke og samtidig nyttig

INF2810: Funksjonell Programmering. En metasirkulær evaluator

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

INF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

Diskusjonsoppgaver Hvilke fordeler oppnår man ved analytisk evaluering sammenliknet med andre tilnærminger?

Objektorientert programmering i Python

Forord Dette er testdokumentasjonen skrevet i forbindelse med hovedprosjekt ved Høgskolen i Oslo våren 2010.

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

63,4. $QDO\VHRJSUHVHQWDVMRQDYPnOHGDWD 6RIWZDUH 3URFHVV,PSURYHPHQW IRUEHWWHU4XDOLW\

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014

MAT1030 Diskret Matematikk

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO

Forelesning 29: Kompleksitetsteori

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme

Løpende strekmann Erfaren Videregående Python PDF

Forslag til ny læreplan for informatikk studieretningsfag

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

SolidPlant er perfekt for deg som jobber med design av rørsystemer og anlegg, og er kjent med SolidWorks.

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

Innhold Innledning 1. 5 Løkke som kontrollstruktur Et program med løkke som kontrollstruktur 132. vii

Guide. Valg av regnskapsprogram

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist

Når programmet har nok opplysninger beregner det alle resterende data. Programmet tegner atumatisk opp T-s og P-v diagram for syklusen.

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist

Forsøkslæreplan i valgfag programmering

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Estimeringsmetoder. I dag. Estimering = måling. Kostnader og prisfastsettelse

INF1000 undervisningen INF 1000 høsten 2011 Uke september

UNN KIS Samlet pris og prisbestemmelser

INF 1000 høsten 2011 Uke september

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

Transkript:

Metrikker og målte størrelser Vi måler fakta for å bestemme systemets egenskaper

Hva vil vi vite? Hvor stort er programmet? Hvor godt er programmet? Hvor lett er det å vedlikeholde? Hvor mange feil er det i programmet? Hva vil testingen koste? Hvor lang tid tar det å utvikle et lignende program?

Grunnlaget for å bruke metrikker Behov for på en objektiv måte kunne Beskrive funksjonalitet Sammenligne systemer Evaluere systemer Forutsi Programkompleksitet Utviklingstider Utviklingskostnader

Hva er en metrikk? En metrikk er en målbar egenskap både for et system eller en prosess målbar egenskap eller størrelse i en eller flere deler av et informasjonssystem beregnet eller komponert indikator basert på to eller flere målinger karakteristikk av et produkt eller prosess En metrikk bør være en objektiv størrelse som ikke påvirkes av personen som utfører målingene

Krav til en metrikk - en metrikk skal Måle, ikke beskrive egenskaper Være enkel og lett å definere og måle Være objektiv og ikke avhengig av situasjonen Lett og billig å måle Ikke være påvirkelig av program eller målemetode Ha verdier som er forståelige for alle

Typer av metrikker Produktmetrikker Antall kodelinjer Størrelse på installert program Mengden av dokumentasjon Prosessmetrikker Utviklingstid, Planlagt og virkelig Ressursbruk, Planlagt og virkelig Produktivitet, Kodelinjer, funksjonspoeng Kvalitet, feil/kodelinjer Metode for utviklingen Kompetanse til utviklingsteamet

Flere typer metrikker Objektive Antall kodelinjer - alle teller på samme måte Subjektive Enkel eller komplisert programstruktur - kompetanseavhengig Enkle Antall kodelinjer lett å telle Kompliserte Antall kodelinjer pr. personmåned - kan ikke måles direkte men er avledet av andre metrikker Mest nyttige til å evaluere prosesser

Måling av en metrikk Fire typer målinger Programtype Database, personalsystem Tallverdier Rangere mellom forskjellige størrelser Intervallverdier Kompleksitet 4-6, kompleksitet 10-12 Forholdstall Et program på 1000 linjer er dobbelt så stort som ett på 2000

Utfordringer Mange i bruk, lite standardisert Ulik bruk i ulike organisasjoner Vanskelig å sammenligne mellom forskjellige organisasjoner Samme metrikk kan måles på forskjellig måte Metrikkverdi kan avhenge av metode antall kodelinjer avhenger av utviklingsspråk assembly, tradisjonelt utviklingsspråk, 4GV effektiv kode

Produktmetrikker Størrelsesmål Antall kodelinjer Antall funksjonspunkter Input, output Kompleksitetsmål McCabes sykliske tall antall definisjoner og antall kall dybde i nøsting av if-setninger fan-in / fan-out Mål for antall funksjoner som kaller en annen funksjon

McCabes sykliske tall Mål for testoppgaven Antall noder 13 Antall kanter 17 McCabes sykliske tall = 17 13 + 2 = 6 < 10 er OK

Halstead s tall - Programvolumet n1 = Antall unike operatorer i programmet. n2 = Antall unike operander i programmet. operator er språkets nøkkelord operand er variabler og konstanter vokabularet n = n1 + n2, N1 = Totale antall operatorer i programmet. N2 = Totale antall operander i programmet programlengden N = N1 + N2. Da et program bare består av operatorer og operander blir Halstead s tall = Programvolumet = N log2 n

Antall funksjonspoeng Brukes til å estimere utviklingstid og ressursbehov bygd på erfaringsdata Vekter (vist nedenfor) 14 påvirkningsfaktorer Innflytelse av faktorene 0-5 Parameter Enkel Middels kompleks Antall inndata 3 4 6 Antall utdata 4 5 7 Antall forespørsler 3 4 6 Antall filer 7 10 15 Antall eksterne grensesnitt 5 7 10

Kvalitetsmetrikker Antall endringer i designfasen feil funnet ved kodeinspeksjon feil funnet ved testing Nødvendige endringer i kodingen

Enkle og komplekse målinger Enkle målinger Antall kodelinjer i programmet Antall sider brukerdokumentasjonen Antall mottatte feilrapporter Antall timer programmet er blitt testet Komplekse målinger Antall feilrapporter \ antall feil funnet i test Antall kodelinjer \ antall utviklingstimer Antall feil funnet i test \ antall testtimer Antall beregninger \ antall kodelinjer Antall måter å kalle en module på

Metrikker for ikke-funksjonelle krav Egenskap Hastighet Størrelse Brukbarhet Brukskvalitet (Usability) Pålitelighet Robusthet Portabilitet Mål Utførte transaksjoner per sekund, Behandlede hits/s Bruker/hendelsesresponstid, Skjermoppfriskningstid kb, MB Treningstid, Antall hjelpesider Gjennomsnittlig betjeningstid per transaksjon MTBF Gjennomsnittstid mellom svikt Oppetid MTTR Gjenstarttid etter svikt Andel av hendelser som fører til svikt Andel av målavhengige setninger Antall mål