meetup at sig: meten is weten

40
Meten is weten, of toch niet? @EricBouwers

Upload: devnology

Post on 29-Nov-2014

3.985 views

Category:

Technology


4 download

DESCRIPTION

Slides from the talk for Devnology, held 2 oct 2013 at the offices of the Software Improvement Group (SIG) in Amsterdam. Presentation by Eric Bouwers.

TRANSCRIPT

Page 1: Meetup at SIG: Meten is weten

Meten is weten, of toch niet?

@EricBouwers

Page 2: Meetup at SIG: Meten is weten

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.

Page 3: Meetup at SIG: Meten is weten

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.’

Page 4: Meetup at SIG: Meten is weten

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

Page 5: Meetup at SIG: Meten is weten

Welke software metrieken gebruiken jullie?

Page 6: Meetup at SIG: Meten is weten

(Software) Metingen

Page 7: Meetup at SIG: Meten is weten

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

Page 8: Meetup at SIG: Meten is weten

Entiteit

Attribuut

Mapping

Meting

Page 9: Meetup at SIG: Meten is weten

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

Page 10: Meetup at SIG: Meten is weten

Attributen

Extern

Intern Volume,

Gestructureerdheid, Functionaliteit

Bruikbaarheid, Betrouwbaarheid

Page 11: Meetup at SIG: Meten is weten

Mapping

Park, Rober E., Software Size Measurement: A Framework for Counting Source Statements, Technical Report CMU/SEI-92-TR-020

Page 12: Meetup at SIG: Meten is weten

Representation Condition Attribuut: Volume

Foo

Bar

500 LOC

100 LOC

1 Files

5 Files

Groot

Klein

Metriek Metriek Metriek

Page 13: Meetup at SIG: Meten is weten

Meetschalen

Type Toegestane operaties

Voorbeelden

Nominaal = , ≠ A, B, C, D, E Ordinaal = , ≠, < , > Small, large Interval = , ≠, < , > , + , - Start date Ratio All LOC Absoluut All -

Page 14: Meetup at SIG: Meten is weten

Samenvatting concepten

Entiteit (Kind)

Attribuut (Lengte)

Metriek (cm)

Mapping (Voeten op de grond)

Page 15: Meetup at SIG: Meten is weten

Waarom maakt dit uit?

Page 16: Meetup at SIG: Meten is weten

Het beïnvloedt wat je zou willen …

Alves. Categories of Source Code in Industrial Systems, ESEM 2011: 335-338

Entiteit: systeem

Page 17: Meetup at SIG: Meten is weten

Het maakt uit wie het wil weten …

Systeem

Component

Module

Unit

Page 18: Meetup at SIG: Meten is weten

Aggregatie oefening Van Unit naar Systeem

Page 19: Meetup at SIG: Meten is weten

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

Page 20: Meetup at SIG: Meten is weten

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?

Page 21: Meetup at SIG: Meten is weten

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

Page 22: Meetup at SIG: Meten is weten

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"

Page 23: Meetup at SIG: Meten is weten

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#

Page 24: Meetup at SIG: Meten is weten

Belangrijke zaken voor metingen

Volume

Uitlegbaarheid

Distributie

Page 25: Meetup at SIG: Meten is weten

Valkuilen van het meten

Page 26: Meetup at SIG: Meten is weten

One-track metric

Page 27: Meetup at SIG: Meten is weten

Alleen kijken naar het volume

Page 28: Meetup at SIG: Meten is weten

Combinatie van metingen levert meer inzichten op

Equals

HashCode

Page 29: Meetup at SIG: Meten is weten

Metrics Galore

Page 30: Meetup at SIG: Meten is weten

Wat moeten we dan meten?

Page 31: Meetup at SIG: Meten is weten

GQM

Goal Question

Question

Metric

Metric

Metric

Basili, Et. Al. , The Goal Question Metric Approach, Chapter in Encyclopedia of Software Engineering, Wiley, 1994.

Page 32: Meetup at SIG: Meten is weten

GQM - Voorbeeld

http://www.cs.umd.edu/users/mvz/handouts/gqm.pdf

Page 33: Meetup at SIG: Meten is weten

Treating the metric

Page 34: Meetup at SIG: Meten is weten

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

Page 35: Meetup at SIG: Meten is weten

● ● ● ● ● ● ● ● ● ●

● ●

● ● ● ● ● ● ● ● ●

0.0

0.2

0.4

0.6

0.8

1.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

SBCSUCB

I II III IV

Metric in a bubble

Page 36: Meetup at SIG: Meten is weten

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

Page 37: Meetup at SIG: Meten is weten

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

Page 38: Meetup at SIG: Meten is weten

Samenvatting

Page 39: Meetup at SIG: Meten is weten

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

Page 40: Meetup at SIG: Meten is weten

Meten om te weten

Goal

Entiteit – Attribuut – Mapping

Context