SlideShare a Scribd company logo
‹#› Het begint met een idee
Measurement theory basics
Ivano Malavolta
Vrije Universiteit Amsterdam
Concepts
Scale types
Mini-lab
2 Ivano Malavolta / S2 group / Empirical software engineering
Roadmap
Vrije Universiteit Amsterdam
Measurement is the central part of empirical software
engineering
3 Ivano Malavolta / S2 group / Empirical software engineering
Measurement
We need to measure these
Vrije Universiteit Amsterdam
4 Ivano Malavolta / S2 group / Empirical software engineering
Measurement
Measurement: the process of assigning numbers or symbols
to attributes of entities in the real world
Mobile app
Real world Measures
150k lines of code
Highly usable
15k $
Measure:
the actual number or symbol assigned to an attribute of an entity
Vrije Universiteit Amsterdam
5 Ivano Malavolta / S2 group / Empirical software engineering
Conceptual framework
The overall goal of measuring is to trait entity attributes
formally (e.g., statistically) for making claims or decisions
Vrije Universiteit Amsterdam
6 Ivano Malavolta / S2 group / Empirical software engineering
Conceptual framework
Remember that we are measuring for answering questions
Usually a single metric is not sufficient to adequately answer
even an apparently simple question
→ we will have a set of measures for each question, each
measure must be:
○ precise
○ reliable
○ valid
Vrije Universiteit Amsterdam
7 Ivano Malavolta / S2 group / Empirical software engineering
Preciseness
Preciseness: the size of a measure’s smallest unit
For example:
● does the height of a person need to be measured to the millimeter?
● does the energy consumption of a mobile app need to be measured to
the mJ?
Tip: the precision of any derived measures (e.g., the average) must have the
same precision of the original measured
e.g. the average height of Dutch people is 183.67893 cm
e.g. the average launch time of app X is 57 nanoseconds
Compound metrics: remember that the arithmetic combination of measures
propagates and magnifies the error inherent in the original values
Vrije Universiteit Amsterdam
8 Ivano Malavolta / S2 group / Empirical software engineering
Reliability
Reliability: measurements must be consistent across
repeated observations in the same circumstances
Relatively easy for physical measures, difficult for unstable or human-based
ones
e.g. Energy consumption
Launch time of a mobile app
Rating scales
Typically quantified by coefficient measures, like the Cronbach’s coefficient
alpha, or the Cohen-Kappa coefficient
○ they can be viewed as a correlation among repeated measurements
Classical technique for mitigating unreliable measures: repetitions and
averaging
Vrije Universiteit Amsterdam
9 Ivano Malavolta / S2 group / Empirical software engineering
Validity
A measure is valid if it:
● does not violate any properties of the attribute it measures
● is a proper mathematical characterization of the attribute
● Content validity: how the measure reflects the domain it is intended to
measure
○ e.g. measure program complexity according to the language used for
the names of the variables
● Criterion validity: how the measure reflects the measured object w.r.t. to
some criterion
○ e.g., a complexity measure should assign high values to programs
which are known to be highly complex
● Construct validity: how a measure actually measures the conceptual
entity of interest. e.g., #lines of code for measuring program complexity
Vrije Universiteit Amsterdam
10 Ivano Malavolta / S2 group / Empirical software engineering
Lines of code?
Reliable
Easy to measure
How to interpret:
- empty lines
- comments
- several statements on one line
Language dependent
Is it related to complexity?
Vrije Universiteit Amsterdam
11 Ivano Malavolta / S2 group / Empirical software engineering
Scale types
Vrije Universiteit Amsterdam
● Most used scale types:
▪ Nominal
▪ Ordinal
▪ Interval
▪ Ratio
Choosing a scale for a variable means constraining the statistical
analysis that you can do on it
12 Ivano Malavolta / S2 group / Empirical software engineering
Scale types
Vrije Universiteit Amsterdam
You can see it as “tagging”
It maps the attribute of an entity to a name or symbol
e.g.
caching strategy: {no-cache, cache-only, cache-first, cache-network-race}
It is the least powerful from a statistical point of view
13 Ivano Malavolta / S2 group / Empirical software engineering
Nominal
Name Examples outside SE Examples inside SE Constraints
Vrije Universiteit Amsterdam
It ranks the entities after an ordering criterion
→ you can see it as “tagging with a given order”
Examples of criteria: “greater than”, “more complex”, “more green”
e.g. type of available network connection: {wifi, 3G, 2G}
14 Ivano Malavolta / S2 group / Empirical software engineering
Ordinal
Name Examples outside SE Examples inside SE Constraints
Vrije Universiteit Amsterdam
Used when the difference between two measures are
meaningful, but not the value itself
Example - launch time of a mobile app (in some cases)
Similar to the ordinal scale, but there is a notion of “relative
distance” between two entities
15 Ivano Malavolta / S2 group / Empirical software engineering
Interval
Name Examples outside SE Examples inside SE Constraints
Vrije Universiteit Amsterdam
Used when:
▪ there is a meaningful zero value
▪ The ratio between two measures is meaningful
Eg- energy consumption in Joule
16 Ivano Malavolta / S2 group / Empirical software engineering
Ratio
Name Examples outside SE Examples inside SE Constraints
Vrije Universiteit Amsterdam
17 Ivano Malavolta / S2 group / Empirical software engineering
Example
Vrije Universiteit Amsterdam
18 Ivano Malavolta / S2 group / Empirical software engineering
Mini-lab
Vrije Universiteit Amsterdam
19 Ivano Malavolta / S2 group / Empirical software engineering
Paper
This is a descriptive study
Vrije Universiteit Amsterdam
1. Quickly read abstract, introduction, and conclusions of the paper
2. Read section 6.1
3. Define the metrics and scale types of the following criteria:
20 Ivano Malavolta / S2 group / Empirical software engineering
Steps
Vrije Universiteit Amsterdam
Now you know:
● The basics of software measurement theory
● How to define the measurements
▪ they will map 1:1 to your experiments variables
IMPORTANT!
The type of your measures will heavily impact
the statistical analysis you will perform
21 Ivano Malavolta / S2 group / Empirical software engineering
What this lecture means to you?
Vrije Universiteit Amsterdam
22 Ivano Malavolta / S2 group / Empirical software engineering
Readings
Chapter 3 Chapter 6
+ the paper we used in the mini-lab
http://dl.acm.org/citation.cfm?id=2897092

More Related Content

Similar to [03-B] Measurement theory basics

[02-B] Experiment scoping
[02-B] Experiment scoping[02-B] Experiment scoping
[02-B] Experiment scoping
Ivano Malavolta
 
The Green Lab - [02 B] Experiment scoping
The Green Lab - [02 B] Experiment scopingThe Green Lab - [02 B] Experiment scoping
The Green Lab - [02 B] Experiment scoping
Ivano Malavolta
 
The Green Lab - [01 C] Empirical software engineering
The Green Lab - [01 C] Empirical software engineeringThe Green Lab - [01 C] Empirical software engineering
The Green Lab - [01 C] Empirical software engineering
Ivano Malavolta
 
[03-A] Experiment planning
[03-A] Experiment planning[03-A] Experiment planning
[03-A] Experiment planning
Ivano Malavolta
 
The Green Lab - [03 A] Experiment planning
The Green Lab - [03 A] Experiment planningThe Green Lab - [03 A] Experiment planning
The Green Lab - [03 A] Experiment planning
Ivano Malavolta
 
[02-A] The experimental process
[02-A] The experimental process[02-A] The experimental process
[02-A] The experimental process
Ivano Malavolta
 
[13 - A] Experiment validity
[13 - A] Experiment validity[13 - A] Experiment validity
[13 - A] Experiment validity
Ivano Malavolta
 
[05-A] Experiment design (basics)
[05-A] Experiment design (basics)[05-A] Experiment design (basics)
[05-A] Experiment design (basics)
Ivano Malavolta
 
Software Development and Quality
Software Development and QualitySoftware Development and Quality
Software Development and Quality
Herwig Habenbacher
 
[2015/2016] RESEARCH in software engineering
[2015/2016] RESEARCH in software engineering[2015/2016] RESEARCH in software engineering
[2015/2016] RESEARCH in software engineering
Ivano Malavolta
 
The Green Lab - [09 B] Experiment validity
The Green Lab - [09  B] Experiment validityThe Green Lab - [09  B] Experiment validity
The Green Lab - [09 B] Experiment validity
Ivano Malavolta
 
Early Analysis and Debuggin of Linked Open Data Cubes
Early Analysis and Debuggin of Linked Open Data CubesEarly Analysis and Debuggin of Linked Open Data Cubes
Early Analysis and Debuggin of Linked Open Data Cubes
Enrico Daga
 
Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...
Tao Xie
 
[13 - B] Experiment reporting
[13 - B] Experiment reporting[13 - B] Experiment reporting
[13 - B] Experiment reporting
Ivano Malavolta
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Raquel Pau
 
Specifying quantities in software models
Specifying quantities in software modelsSpecifying quantities in software models
Specifying quantities in software models
Facultad de Informática UCM
 
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
Radu Marinescu
 
Sandsys technologies (1)
Sandsys technologies (1)Sandsys technologies (1)
Sandsys technologies (1)
sandsys technologies
 
Bengkel smartPLS 2011
Bengkel smartPLS 2011Bengkel smartPLS 2011
Bengkel smartPLS 2011
Adi Ali
 

Similar to [03-B] Measurement theory basics (20)

[02-B] Experiment scoping
[02-B] Experiment scoping[02-B] Experiment scoping
[02-B] Experiment scoping
 
The Green Lab - [02 B] Experiment scoping
The Green Lab - [02 B] Experiment scopingThe Green Lab - [02 B] Experiment scoping
The Green Lab - [02 B] Experiment scoping
 
The Green Lab - [01 C] Empirical software engineering
The Green Lab - [01 C] Empirical software engineeringThe Green Lab - [01 C] Empirical software engineering
The Green Lab - [01 C] Empirical software engineering
 
[03-A] Experiment planning
[03-A] Experiment planning[03-A] Experiment planning
[03-A] Experiment planning
 
The Green Lab - [03 A] Experiment planning
The Green Lab - [03 A] Experiment planningThe Green Lab - [03 A] Experiment planning
The Green Lab - [03 A] Experiment planning
 
[02-A] The experimental process
[02-A] The experimental process[02-A] The experimental process
[02-A] The experimental process
 
[13 - A] Experiment validity
[13 - A] Experiment validity[13 - A] Experiment validity
[13 - A] Experiment validity
 
[05-A] Experiment design (basics)
[05-A] Experiment design (basics)[05-A] Experiment design (basics)
[05-A] Experiment design (basics)
 
Software Development and Quality
Software Development and QualitySoftware Development and Quality
Software Development and Quality
 
[2015/2016] RESEARCH in software engineering
[2015/2016] RESEARCH in software engineering[2015/2016] RESEARCH in software engineering
[2015/2016] RESEARCH in software engineering
 
The Green Lab - [09 B] Experiment validity
The Green Lab - [09  B] Experiment validityThe Green Lab - [09  B] Experiment validity
The Green Lab - [09 B] Experiment validity
 
Early Analysis and Debuggin of Linked Open Data Cubes
Early Analysis and Debuggin of Linked Open Data CubesEarly Analysis and Debuggin of Linked Open Data Cubes
Early Analysis and Debuggin of Linked Open Data Cubes
 
Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...
 
[13 - B] Experiment reporting
[13 - B] Experiment reporting[13 - B] Experiment reporting
[13 - B] Experiment reporting
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Specifying quantities in software models
Specifying quantities in software modelsSpecifying quantities in software models
Specifying quantities in software models
 
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
The Good the Bad and the Ugly of Dealing with Smelly Code (ITAKE Unconference)
 
Sandsys technologies (1)
Sandsys technologies (1)Sandsys technologies (1)
Sandsys technologies (1)
 
Bengkel smartPLS 2011
Bengkel smartPLS 2011Bengkel smartPLS 2011
Bengkel smartPLS 2011
 
CSC410-Presentation
CSC410-PresentationCSC410-Presentation
CSC410-Presentation
 

More from Ivano Malavolta

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Ivano Malavolta
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
Ivano Malavolta
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
Ivano Malavolta
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
Ivano Malavolta
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Ivano Malavolta
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
Ivano Malavolta
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Ivano Malavolta
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Ivano Malavolta
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Ivano Malavolta
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Ivano Malavolta
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Ivano Malavolta
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Ivano Malavolta
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Ivano Malavolta
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
Ivano Malavolta
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile development
Ivano Malavolta
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
Ivano Malavolta
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
Ivano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
Ivano Malavolta
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
Ivano Malavolta
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
Ivano Malavolta
 

More from Ivano Malavolta (20)

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile development
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 

Recently uploaded

AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 

Recently uploaded (20)

AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 

[03-B] Measurement theory basics

  • 1. ‹#› Het begint met een idee Measurement theory basics Ivano Malavolta
  • 2. Vrije Universiteit Amsterdam Concepts Scale types Mini-lab 2 Ivano Malavolta / S2 group / Empirical software engineering Roadmap
  • 3. Vrije Universiteit Amsterdam Measurement is the central part of empirical software engineering 3 Ivano Malavolta / S2 group / Empirical software engineering Measurement We need to measure these
  • 4. Vrije Universiteit Amsterdam 4 Ivano Malavolta / S2 group / Empirical software engineering Measurement Measurement: the process of assigning numbers or symbols to attributes of entities in the real world Mobile app Real world Measures 150k lines of code Highly usable 15k $ Measure: the actual number or symbol assigned to an attribute of an entity
  • 5. Vrije Universiteit Amsterdam 5 Ivano Malavolta / S2 group / Empirical software engineering Conceptual framework The overall goal of measuring is to trait entity attributes formally (e.g., statistically) for making claims or decisions
  • 6. Vrije Universiteit Amsterdam 6 Ivano Malavolta / S2 group / Empirical software engineering Conceptual framework Remember that we are measuring for answering questions Usually a single metric is not sufficient to adequately answer even an apparently simple question → we will have a set of measures for each question, each measure must be: ○ precise ○ reliable ○ valid
  • 7. Vrije Universiteit Amsterdam 7 Ivano Malavolta / S2 group / Empirical software engineering Preciseness Preciseness: the size of a measure’s smallest unit For example: ● does the height of a person need to be measured to the millimeter? ● does the energy consumption of a mobile app need to be measured to the mJ? Tip: the precision of any derived measures (e.g., the average) must have the same precision of the original measured e.g. the average height of Dutch people is 183.67893 cm e.g. the average launch time of app X is 57 nanoseconds Compound metrics: remember that the arithmetic combination of measures propagates and magnifies the error inherent in the original values
  • 8. Vrije Universiteit Amsterdam 8 Ivano Malavolta / S2 group / Empirical software engineering Reliability Reliability: measurements must be consistent across repeated observations in the same circumstances Relatively easy for physical measures, difficult for unstable or human-based ones e.g. Energy consumption Launch time of a mobile app Rating scales Typically quantified by coefficient measures, like the Cronbach’s coefficient alpha, or the Cohen-Kappa coefficient ○ they can be viewed as a correlation among repeated measurements Classical technique for mitigating unreliable measures: repetitions and averaging
  • 9. Vrije Universiteit Amsterdam 9 Ivano Malavolta / S2 group / Empirical software engineering Validity A measure is valid if it: ● does not violate any properties of the attribute it measures ● is a proper mathematical characterization of the attribute ● Content validity: how the measure reflects the domain it is intended to measure ○ e.g. measure program complexity according to the language used for the names of the variables ● Criterion validity: how the measure reflects the measured object w.r.t. to some criterion ○ e.g., a complexity measure should assign high values to programs which are known to be highly complex ● Construct validity: how a measure actually measures the conceptual entity of interest. e.g., #lines of code for measuring program complexity
  • 10. Vrije Universiteit Amsterdam 10 Ivano Malavolta / S2 group / Empirical software engineering Lines of code? Reliable Easy to measure How to interpret: - empty lines - comments - several statements on one line Language dependent Is it related to complexity?
  • 11. Vrije Universiteit Amsterdam 11 Ivano Malavolta / S2 group / Empirical software engineering Scale types
  • 12. Vrije Universiteit Amsterdam ● Most used scale types: ▪ Nominal ▪ Ordinal ▪ Interval ▪ Ratio Choosing a scale for a variable means constraining the statistical analysis that you can do on it 12 Ivano Malavolta / S2 group / Empirical software engineering Scale types
  • 13. Vrije Universiteit Amsterdam You can see it as “tagging” It maps the attribute of an entity to a name or symbol e.g. caching strategy: {no-cache, cache-only, cache-first, cache-network-race} It is the least powerful from a statistical point of view 13 Ivano Malavolta / S2 group / Empirical software engineering Nominal Name Examples outside SE Examples inside SE Constraints
  • 14. Vrije Universiteit Amsterdam It ranks the entities after an ordering criterion → you can see it as “tagging with a given order” Examples of criteria: “greater than”, “more complex”, “more green” e.g. type of available network connection: {wifi, 3G, 2G} 14 Ivano Malavolta / S2 group / Empirical software engineering Ordinal Name Examples outside SE Examples inside SE Constraints
  • 15. Vrije Universiteit Amsterdam Used when the difference between two measures are meaningful, but not the value itself Example - launch time of a mobile app (in some cases) Similar to the ordinal scale, but there is a notion of “relative distance” between two entities 15 Ivano Malavolta / S2 group / Empirical software engineering Interval Name Examples outside SE Examples inside SE Constraints
  • 16. Vrije Universiteit Amsterdam Used when: ▪ there is a meaningful zero value ▪ The ratio between two measures is meaningful Eg- energy consumption in Joule 16 Ivano Malavolta / S2 group / Empirical software engineering Ratio Name Examples outside SE Examples inside SE Constraints
  • 17. Vrije Universiteit Amsterdam 17 Ivano Malavolta / S2 group / Empirical software engineering Example
  • 18. Vrije Universiteit Amsterdam 18 Ivano Malavolta / S2 group / Empirical software engineering Mini-lab
  • 19. Vrije Universiteit Amsterdam 19 Ivano Malavolta / S2 group / Empirical software engineering Paper This is a descriptive study
  • 20. Vrije Universiteit Amsterdam 1. Quickly read abstract, introduction, and conclusions of the paper 2. Read section 6.1 3. Define the metrics and scale types of the following criteria: 20 Ivano Malavolta / S2 group / Empirical software engineering Steps
  • 21. Vrije Universiteit Amsterdam Now you know: ● The basics of software measurement theory ● How to define the measurements ▪ they will map 1:1 to your experiments variables IMPORTANT! The type of your measures will heavily impact the statistical analysis you will perform 21 Ivano Malavolta / S2 group / Empirical software engineering What this lecture means to you?
  • 22. Vrije Universiteit Amsterdam 22 Ivano Malavolta / S2 group / Empirical software engineering Readings Chapter 3 Chapter 6 + the paper we used in the mini-lab http://dl.acm.org/citation.cfm?id=2897092