SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Meten is weten,
of toch niet?
@EricBouwers
Waarom zouden we software doormeten?
‘You can’t control what you can't measure.’
DeMarco, Tom. Controlling Software Projects: Management, Measurement and Estimation. ISBN 0-13-171711-1.
Waarom zouden we software doormeten?
DeMarco, Tom. Controlling Software Projects: Management, Measurement and Estimation. ISBN 0-13-171711-1.
‘You can’t improve what you can't measure.’
Software metingen worden gebruikt voor:
•  Het schatten van kosten en inspanning
•  Productiviteit metrieken en modellen
•  Data collectie
•  Betrouwbaarheid modellen
•  Performance evaluaties en modellen
•  Structuur en complexiteit metrieken
•  Capability-maturity assessments
•  Management door metrieken
•  Evaluaties van methodieken en tooling
•  Kwaliteitsmodellen en -metingen
Fenton et. al., Software Metrics: a rigorous and practical approach. ISBN 0534954251
Welke software metrieken
gebruiken jullie?
(Software) Metingen
Wat is meten?
‘Formally, we define measurement as a
mapping from the empirical world to the
formal, relational world. ’
‘A measure is the number or symbol assigned to
an entity by this mapping in order to
characterize an attribute’
Fenton et. al., Software Metrics: a rigorous and practical approach. ISBN 0534954251
Entiteit
Attribuut
Mapping
Meting
Entiteit
Product:
•  Specificaties, Architecture diagrammen, Designs, Code,
Test Data, …
Proces:
•  Maken van specificaties, Gedetailleerd ontwerp, Testen, ….
Resources:
•  Personeel, Teams, Software, Hardware, Kantoren, …
Fenton et. al., Software Metrics: a rigorous and practical approach. ISBN 0534954251
Attributen
Extern
Intern
Volume,
Gestructureerdheid,
Functionaliteit
Bruikbaarheid,
Betrouwbaarheid
Mapping
Park, Rober E., Software Size Measurement: A Framework for Counting Source Statements, Technical Report CMU/SEI-92-TR-020
Representation Condition
Attribuut: Volume
Foo
Bar
500 LOC
100 LOC
1 Files
5 Files
Groot
Klein
Metriek Metriek Metriek
Meetschalen
Type Toegestane
operaties
Voorbeelden
Nominaal = , ≠ A, B, C, D, E
Ordinaal = , ≠, < , > Small, large
Interval = , ≠, < , > , + , - Start date
Ratio All LOC
Absoluut All -
Samenvatting concepten
Entiteit
(Kind)
Attribuut
(Lengte)
Metriek
(cm)
Mapping
(Voeten op de grond)
Waarom maakt dit uit?
Het beïnvloedt wat je zou willen …
Alves. Categories of Source Code in Industrial Systems, ESEM 2011: 335-338
Entiteit: systeem
Het maakt uit wie het wil weten …
Systeem
Component
Module
Unit
Aggregatie oefening
Van Unit naar Systeem
Unit meting:
T. McCabe, IEEE Transactions on Software Engineering, 1976
•  Academisch: aantal onafhankelijke paden in een methode
•  Intuïtief: aantal beslispunten in een methode
•  Realiteit: het aantal if (for, while,…) statements
McCabe: 4
Method
Beschikbare data
Voor 4 projecten, per unit:
•  Lines of Code
•  McCabe complexity
In welk systeem is het testen van de units
over het algemeen uitdagender?
Optie 1: Optellen
Crawljax GOAL Checkstyle Springframework
Totaal McCabe 1814 6560 4611 22937
Totaal LOC 6972 25312 15994 79474
Ratio 0,260 0,259 0,288 0,288
Optie 2: Gemiddelde
Crawljax GOAL Checkstyle Springframework
Gemiddelde
McCabe
1,87 2,45 2,46 1,99
0"
200"
400"
600"
800"
1000"
1200"
1400"
1600"
1800"
1" 2" 3" 4" 5" 6" 7" 8" 9" 10" 11" 12" 13" 14" 15" 17" 18" 19" 20" 21" 22" 23" 24" 25" 27" 29" 32"
Cyclomatic
complexity
Risk
category
1 - 5 Low
6 - 10 Moderate
11 - 25 High
> 25 Very high
Tel Lines of Code"
per categorie"
Lines of code per risk category
Low Moderate High Very high
70 % 12 % 13 % 5 %
Optie 3: Kwaliteitsprofiel
0%# 10%# 20%# 30%# 40%# 50%# 60%# 70%# 80%# 90%# 100%#
Crawljax#
Goal#
Checkstyle#
Springframework#
Belangrijke zaken voor metingen
Volume
Uitlegbaarheid
Distributie
Valkuilen van het meten
One-track metric
Alleen kijken naar het volume
Combinatie van metingen levert meer
inzichten op
Equals
HashCode
Metrics Galore
Wat moeten we dan meten?
GQM
Goal Question
Question
Metric
Metric
Metric
Basili, Et. Al. , The Goal Question Metric Approach, Chapter in Encyclopedia of Software Engineering, Wiley, 1994.
GQM - Voorbeeld
http://www.cs.umd.edu/users/mvz/handouts/gqm.pdf
Treating the metric
http://www.nsa.gov/public_info/_files/speeches_testimonies/2013_08_09_the_nsa_story.pdf
http://buzzmachine.com/2013/08/10/nsa-by-the-numbers/
0.23 petabytes aan
Facebook foto’s
Realtime
entertainment is
62% van
internetverkeer
HTTP verkeer is
11.8% van het
internetverkeer
Metric in a bubble
● ● ● ● ● ● ● ● ● ●
● ●
●
●
● ● ● ● ● ● ● ● ●
0.00.20.40.60.81.0
● ● ● ● ● ● ● ● ● ●
●
●
●
● ●
●
● ● ● ● ●
● ●
1.0 1.1 1.2 1.3 1.4 2.0 2.1 2.2 2.3 2.4 3.0 3.1 3.2 3.3 3.4 3.5 4.0 4.1 4.2 4.3 4.4 5.0 5.1
●
●
SB
CSU
CB
I II III IV
Metric in a bubble
Een voorbeeld van context
Benchmarking
0.14
0.96
0.09
0.84 0.09
0.14
0.84
0.96
…. ….
0.34
Let op: voorbeeld thresholds
sorteren
HHIII
Threshold Score
0.9 HHHHH
0.8 HHHHI
0.5 HHHII
0.3 HHIII
0.1 HIIII
Metric in a bubble Treating the metric
One-track metric Metrics galore
Betekenis
# metrics
Te weinig Te veel
E. Bouwers, A. van Deursen, and J. Visser. Getting What You Measure. Communications of the ACM, Vol. 55 No. 7, Pages 54-59, July 2012
Valkuilen van het meten
Samenvatting
Uitdagingen in meten
Entiteit
Attribuut
Mapping
Measure
0%# 10%# 20%# 30%# 40%# 50%# 60%# 70%# 80%# 90%# 100%#
Crawljax#
Goal#
Checkstyle#
Springframework#
Metric in a bubble Treating the metric
One-track metric Metrics galore
Betekenis
# metrics
Te weinig Teveel
Meten om te weten
Goal
Entiteit – Attribuut – Mapping
Context

Más contenido relacionado

Similar a Meetup at SIG: Meten is weten

whitepaper Qquest versie 4 dd 5-1-2016
whitepaper Qquest versie 4 dd 5-1-2016whitepaper Qquest versie 4 dd 5-1-2016
whitepaper Qquest versie 4 dd 5-1-2016Ruud Harreman CMC
 
Software for big data - setting the scene
Software for big data -   setting the sceneSoftware for big data -   setting the scene
Software for big data - setting the sceneJurjen Helmus
 
TestNet Nj Event 2009 Test Value en Kza
TestNet Nj Event 2009 Test Value en KzaTestNet Nj Event 2009 Test Value en Kza
TestNet Nj Event 2009 Test Value en Kzaguestb49b99
 
DevOps is geen scrum def
DevOps is geen scrum defDevOps is geen scrum def
DevOps is geen scrum defMyra Kievit
 
Workshop BI/DWH AGILE TESTING Zwitserleven Dutch
Workshop BI/DWH AGILE TESTING Zwitserleven DutchWorkshop BI/DWH AGILE TESTING Zwitserleven Dutch
Workshop BI/DWH AGILE TESTING Zwitserleven DutchMarcus Drost
 
Webinar - EAM /Reliability & Integrity Software selectie - 15 juli 2020
Webinar - EAM /Reliability & Integrity Software selectie - 15 juli 2020Webinar - EAM /Reliability & Integrity Software selectie - 15 juli 2020
Webinar - EAM /Reliability & Integrity Software selectie - 15 juli 2020Stork, a Fluor Company
 
Als Het Goed Is Hoef Je Niet Te Testen Slide Share
Als Het Goed Is Hoef Je Niet Te Testen   Slide ShareAls Het Goed Is Hoef Je Niet Te Testen   Slide Share
Als Het Goed Is Hoef Je Niet Te Testen Slide ShareBigBirdNL
 
Romex intro test no animation
Romex intro test no animationRomex intro test no animation
Romex intro test no animationPeter van Oostrom
 
Waarden ethiek en ai in het onderwijs, deel 2 - Wilco Te Winkel (EUR), Arun R...
Waarden ethiek en ai in het onderwijs, deel 2 - Wilco Te Winkel (EUR), Arun R...Waarden ethiek en ai in het onderwijs, deel 2 - Wilco Te Winkel (EUR), Arun R...
Waarden ethiek en ai in het onderwijs, deel 2 - Wilco Te Winkel (EUR), Arun R...SURF Events
 
Digitaal Toetsen Mp Voorlichtingv1
Digitaal Toetsen Mp Voorlichtingv1Digitaal Toetsen Mp Voorlichtingv1
Digitaal Toetsen Mp Voorlichtingv1Alexander Kremers
 
ResearchManager Nu 90 Dagen Gratis!
ResearchManager Nu 90 Dagen Gratis!ResearchManager Nu 90 Dagen Gratis!
ResearchManager Nu 90 Dagen Gratis!Rene Lagendijk
 
Workshop BI/DWH AGILE TESTING SNS Bank Dutch
Workshop BI/DWH AGILE TESTING SNS Bank DutchWorkshop BI/DWH AGILE TESTING SNS Bank Dutch
Workshop BI/DWH AGILE TESTING SNS Bank DutchMarcus Drost
 
SolvX whitepaper - voorspellende modellen
SolvX whitepaper - voorspellende modellenSolvX whitepaper - voorspellende modellen
SolvX whitepaper - voorspellende modellenSolvX
 
Communityplatform pakketselectie Consumentenbond - Presentatie tijdens CMNL #32
Communityplatform pakketselectie Consumentenbond - Presentatie tijdens CMNL #32Communityplatform pakketselectie Consumentenbond - Presentatie tijdens CMNL #32
Communityplatform pakketselectie Consumentenbond - Presentatie tijdens CMNL #32Stephan ten Kate
 
Application lifecycle management wat betekent dat nou eigenlijk
Application lifecycle management wat betekent dat nou eigenlijkApplication lifecycle management wat betekent dat nou eigenlijk
Application lifecycle management wat betekent dat nou eigenlijkHenk Beekhuis
 

Similar a Meetup at SIG: Meten is weten (20)

whitepaper Qquest versie 4 dd 5-1-2016
whitepaper Qquest versie 4 dd 5-1-2016whitepaper Qquest versie 4 dd 5-1-2016
whitepaper Qquest versie 4 dd 5-1-2016
 
Iot in de zorg the next step - fit for purpose
Iot in de zorg   the next step - fit for purpose Iot in de zorg   the next step - fit for purpose
Iot in de zorg the next step - fit for purpose
 
Software for big data - setting the scene
Software for big data -   setting the sceneSoftware for big data -   setting the scene
Software for big data - setting the scene
 
TestNet Nj Event 2009 Test Value en Kza
TestNet Nj Event 2009 Test Value en KzaTestNet Nj Event 2009 Test Value en Kza
TestNet Nj Event 2009 Test Value en Kza
 
DevOps is geen scrum def
DevOps is geen scrum defDevOps is geen scrum def
DevOps is geen scrum def
 
Workshop BI/DWH AGILE TESTING Zwitserleven Dutch
Workshop BI/DWH AGILE TESTING Zwitserleven DutchWorkshop BI/DWH AGILE TESTING Zwitserleven Dutch
Workshop BI/DWH AGILE TESTING Zwitserleven Dutch
 
Webinar - EAM /Reliability & Integrity Software selectie - 15 juli 2020
Webinar - EAM /Reliability & Integrity Software selectie - 15 juli 2020Webinar - EAM /Reliability & Integrity Software selectie - 15 juli 2020
Webinar - EAM /Reliability & Integrity Software selectie - 15 juli 2020
 
Als Het Goed Is Hoef Je Niet Te Testen Slide Share
Als Het Goed Is Hoef Je Niet Te Testen   Slide ShareAls Het Goed Is Hoef Je Niet Te Testen   Slide Share
Als Het Goed Is Hoef Je Niet Te Testen Slide Share
 
Rabobank 23 06 2010
Rabobank 23 06 2010Rabobank 23 06 2010
Rabobank 23 06 2010
 
Romex intro test no animation
Romex intro test no animationRomex intro test no animation
Romex intro test no animation
 
Waarden ethiek en ai in het onderwijs, deel 2 - Wilco Te Winkel (EUR), Arun R...
Waarden ethiek en ai in het onderwijs, deel 2 - Wilco Te Winkel (EUR), Arun R...Waarden ethiek en ai in het onderwijs, deel 2 - Wilco Te Winkel (EUR), Arun R...
Waarden ethiek en ai in het onderwijs, deel 2 - Wilco Te Winkel (EUR), Arun R...
 
Digitaal Toetsen Mp Voorlichtingv1
Digitaal Toetsen Mp Voorlichtingv1Digitaal Toetsen Mp Voorlichtingv1
Digitaal Toetsen Mp Voorlichtingv1
 
DevOps presentatie
DevOps presentatieDevOps presentatie
DevOps presentatie
 
ResearchManager Nu 90 Dagen Gratis!
ResearchManager Nu 90 Dagen Gratis!ResearchManager Nu 90 Dagen Gratis!
ResearchManager Nu 90 Dagen Gratis!
 
Workshop BI/DWH AGILE TESTING SNS Bank Dutch
Workshop BI/DWH AGILE TESTING SNS Bank DutchWorkshop BI/DWH AGILE TESTING SNS Bank Dutch
Workshop BI/DWH AGILE TESTING SNS Bank Dutch
 
Integratiefase
IntegratiefaseIntegratiefase
Integratiefase
 
Integratiefase
IntegratiefaseIntegratiefase
Integratiefase
 
SolvX whitepaper - voorspellende modellen
SolvX whitepaper - voorspellende modellenSolvX whitepaper - voorspellende modellen
SolvX whitepaper - voorspellende modellen
 
Communityplatform pakketselectie Consumentenbond - Presentatie tijdens CMNL #32
Communityplatform pakketselectie Consumentenbond - Presentatie tijdens CMNL #32Communityplatform pakketselectie Consumentenbond - Presentatie tijdens CMNL #32
Communityplatform pakketselectie Consumentenbond - Presentatie tijdens CMNL #32
 
Application lifecycle management wat betekent dat nou eigenlijk
Application lifecycle management wat betekent dat nou eigenlijkApplication lifecycle management wat betekent dat nou eigenlijk
Application lifecycle management wat betekent dat nou eigenlijk
 

Más de Devnology

What do we really know about the differences between static and dynamic types?
What do we really know about the differences between static and dynamic types?What do we really know about the differences between static and dynamic types?
What do we really know about the differences between static and dynamic types?Devnology
 
Software Operation Knowledge
Software Operation KnowledgeSoftware Operation Knowledge
Software Operation KnowledgeDevnology
 
Slides Felienne Hermans Symposium EWI
Slides Felienne Hermans Symposium EWISlides Felienne Hermans Symposium EWI
Slides Felienne Hermans Symposium EWIDevnology
 
Devnology auteursrecht en open source 20130205
Devnology auteursrecht en open source 20130205Devnology auteursrecht en open source 20130205
Devnology auteursrecht en open source 20130205Devnology
 
The top 10 security issues in web applications
The top 10 security issues in web applicationsThe top 10 security issues in web applications
The top 10 security issues in web applicationsDevnology
 
Hacking Smartcards & RFID
Hacking Smartcards & RFIDHacking Smartcards & RFID
Hacking Smartcards & RFIDDevnology
 
Learn a language : LISP
Learn a language : LISPLearn a language : LISP
Learn a language : LISPDevnology
 
Learn a language : LISP
Learn a language : LISPLearn a language : LISP
Learn a language : LISPDevnology
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology
 
Devnology Back to School IV - Agility en Architectuur
Devnology Back to School IV - Agility en ArchitectuurDevnology Back to School IV - Agility en Architectuur
Devnology Back to School IV - Agility en ArchitectuurDevnology
 
Devnology Back to School III : Software impact
Devnology Back to School III : Software impactDevnology Back to School III : Software impact
Devnology Back to School III : Software impactDevnology
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology
 
Introduction to Software Evolution: The Software Volcano
Introduction to Software Evolution: The Software VolcanoIntroduction to Software Evolution: The Software Volcano
Introduction to Software Evolution: The Software VolcanoDevnology
 
Devnology Workshop Genpro 2 feb 2011
Devnology Workshop Genpro 2 feb 2011Devnology Workshop Genpro 2 feb 2011
Devnology Workshop Genpro 2 feb 2011Devnology
 
Devnology Coding Dojo 05-01-2011
Devnology Coding Dojo 05-01-2011Devnology Coding Dojo 05-01-2011
Devnology Coding Dojo 05-01-2011Devnology
 
Spoofax: ontwikkeling van domeinspecifieke talen in Eclipse
Spoofax: ontwikkeling van domeinspecifieke talen in EclipseSpoofax: ontwikkeling van domeinspecifieke talen in Eclipse
Spoofax: ontwikkeling van domeinspecifieke talen in EclipseDevnology
 
Experimenting with Augmented Reality
Experimenting with Augmented RealityExperimenting with Augmented Reality
Experimenting with Augmented RealityDevnology
 
Unit testing and MVVM in Silverlight
Unit testing and MVVM in SilverlightUnit testing and MVVM in Silverlight
Unit testing and MVVM in SilverlightDevnology
 
mobl: Een DSL voor mobiele applicatieontwikkeling
mobl: Een DSL voor mobiele applicatieontwikkelingmobl: Een DSL voor mobiele applicatieontwikkeling
mobl: Een DSL voor mobiele applicatieontwikkelingDevnology
 
Devnology Fitnesse workshop
Devnology Fitnesse workshopDevnology Fitnesse workshop
Devnology Fitnesse workshopDevnology
 

Más de Devnology (20)

What do we really know about the differences between static and dynamic types?
What do we really know about the differences between static and dynamic types?What do we really know about the differences between static and dynamic types?
What do we really know about the differences between static and dynamic types?
 
Software Operation Knowledge
Software Operation KnowledgeSoftware Operation Knowledge
Software Operation Knowledge
 
Slides Felienne Hermans Symposium EWI
Slides Felienne Hermans Symposium EWISlides Felienne Hermans Symposium EWI
Slides Felienne Hermans Symposium EWI
 
Devnology auteursrecht en open source 20130205
Devnology auteursrecht en open source 20130205Devnology auteursrecht en open source 20130205
Devnology auteursrecht en open source 20130205
 
The top 10 security issues in web applications
The top 10 security issues in web applicationsThe top 10 security issues in web applications
The top 10 security issues in web applications
 
Hacking Smartcards & RFID
Hacking Smartcards & RFIDHacking Smartcards & RFID
Hacking Smartcards & RFID
 
Learn a language : LISP
Learn a language : LISPLearn a language : LISP
Learn a language : LISP
 
Learn a language : LISP
Learn a language : LISPLearn a language : LISP
Learn a language : LISP
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software Development
 
Devnology Back to School IV - Agility en Architectuur
Devnology Back to School IV - Agility en ArchitectuurDevnology Back to School IV - Agility en Architectuur
Devnology Back to School IV - Agility en Architectuur
 
Devnology Back to School III : Software impact
Devnology Back to School III : Software impactDevnology Back to School III : Software impact
Devnology Back to School III : Software impact
 
Devnology back toschool software reengineering
Devnology back toschool software reengineeringDevnology back toschool software reengineering
Devnology back toschool software reengineering
 
Introduction to Software Evolution: The Software Volcano
Introduction to Software Evolution: The Software VolcanoIntroduction to Software Evolution: The Software Volcano
Introduction to Software Evolution: The Software Volcano
 
Devnology Workshop Genpro 2 feb 2011
Devnology Workshop Genpro 2 feb 2011Devnology Workshop Genpro 2 feb 2011
Devnology Workshop Genpro 2 feb 2011
 
Devnology Coding Dojo 05-01-2011
Devnology Coding Dojo 05-01-2011Devnology Coding Dojo 05-01-2011
Devnology Coding Dojo 05-01-2011
 
Spoofax: ontwikkeling van domeinspecifieke talen in Eclipse
Spoofax: ontwikkeling van domeinspecifieke talen in EclipseSpoofax: ontwikkeling van domeinspecifieke talen in Eclipse
Spoofax: ontwikkeling van domeinspecifieke talen in Eclipse
 
Experimenting with Augmented Reality
Experimenting with Augmented RealityExperimenting with Augmented Reality
Experimenting with Augmented Reality
 
Unit testing and MVVM in Silverlight
Unit testing and MVVM in SilverlightUnit testing and MVVM in Silverlight
Unit testing and MVVM in Silverlight
 
mobl: Een DSL voor mobiele applicatieontwikkeling
mobl: Een DSL voor mobiele applicatieontwikkelingmobl: Een DSL voor mobiele applicatieontwikkeling
mobl: Een DSL voor mobiele applicatieontwikkeling
 
Devnology Fitnesse workshop
Devnology Fitnesse workshopDevnology Fitnesse workshop
Devnology Fitnesse workshop
 

Meetup at SIG: Meten is weten