SlideShare a Scribd company logo
1 of 166
Download to read offline
Measuring Software:
From Data to Actionable Knowledge
16 May 2015
International Workshop on Software Architecture and Metrics
Radu Marinescu
radumarinescu@me.com
@radu_marinescu
ogo
lori
Culoare pentru o institu]ie unic - clar, curat, u[or de recunoscut - culoarea
este elementul cel mai u[or de recunoscut, albastru indigo reflect personalitatea
institu]ieide<nv]m>ntsuperiortehnic-ferm,puternic,darintrospectiv,valorizator.
Este o combina]ie de albastru [i ro[u, <n care dominant este albastrul cu atributele
sale introspective. Griul neutru pune <n valoare albastrul, accentu>nd valorile sale.
ogo
ulori
Culoare pentru o institu]ie unic - clar, curat, u[or de recunoscut - culoarea
este elementul cel mai u[or de recunoscut, albastru indigo reflect personalitatea
institu]ieide<nv]m>ntsuperiortehnic-ferm,puternic,darintrospectiv,valorizator.
Este o combina]ie de albastru [i ro[u, <n care dominant este albastrul cu atributele
sale introspective. Griul neutru pune <n valoare albastrul, accentu>nd valorile sale.
Logo
culori
Culoare pentru o institu]ie unic - clar, curat, u[or de recunoscut - culoarea
este elementul cel mai u[or de recunoscut, albastru indigo reflect personalitatea
institu]ieide<nv]m>ntsuperiortehnic-ferm,puternic,darintrospectiv,valorizator.
Este o combina]ie de albastru [i ro[u, <n care dominant este albastrul cu atributele
sale introspective. Griul neutru pune <n valoare albastrul, accentu>nd valorile sale.
Logo
culori
Culoare pentru o institu]ie unic - clar, curat, u[or de recunoscut - culoarea
este elementul cel mai u[or de recunoscut, albastru indigo reflect personalitatea
institu]ieide<nv]m>ntsuperiortehnic-ferm,puternic,darintrospectiv,valorizator.
Este o combina]ie de albastru [i ro[u, <n care dominant este albastrul cu atributele
sale introspective. Griul neutru pune <n valoare albastrul, accentu>nd valorile sale.
Michele Lanza
Radu Marinescu
Object-Oriented
Metrics
in Practice
Using Software Metrics to
Characterize, Evaluate, and Improve
the Design of Object-Oriented Systems
Foreword by Stéphane Ducasse
1 3
1000+reprinted2010/2015
MIPICSME’14
inFusion
inFusion
inFusion
inFusion
seentoo much…
I have
time & money
wasted on…
“hide & seek”
bug chasing
playing futile
numbers games
code being
thrown away
but also…
myriads of
useless papers
tens of
“mayfly”
prototypes
a true story…
180.9
(12 subsystems)
(17 methods)
(3 subsystems)
NOW6 months ago
(1 class)
(22
(10 methods)
(32 classes)
(16 classes)
(28 classes)
(120 methods)
180.9
(12 subsystems)
(17 methods)
(3 subsystems)
NOW6 months ago
(1 class)
(22
(10 methods)
(32 classes)
(16 classes)
(28 classes)
(120 methods)
180.9
(12 subsystems)
(17 methods)
(3 subsystems)
NOW6 months ago
(1 class)
(22
(10 methods)
(32 classes)
(16 classes)
(28 classes)
(120 methods)
180.9
(12 subsystems)
(17 methods)
(3 subsystems)
NOW6 months ago
(1 class)
(22
(10 methods)
(32 classes)
(16 classes)
(28 classes)
(120 methods)
CYCLOMATIC
COMPLEXITY
!This is not an
isolated story
use of metrics
(and other code analyses) in
use of metrics
(and other code analyses) in
misuse
http://nemo.sonarqube.org/
12 Person-Years
http://nemo.sonarqube.org/
12 Person-Years
1 issues / 8 LOC
http://nemo.sonarqube.org/
12 Person-Years
1 issues / 8 LOC1 “key” issue / 140 LOC
http://nemo.sonarqube.org/
12 Person-Years
1 issues / 8 LOC1 “key” issue / 140 LOC
OMG! How is an “E”?!
http://nemo.sonarqube.org/
Picture from http://www.savvykidsofarkansas.com/event/the-boy-who-cried-wolf/
http://nemo.sonarqube.org/
The most efficient 7 weeks in the
history of software development…
http://nemo.sonarqube.org/
The most efficient 7 weeks in the
history of software development…
http://nemo.sonarqube.org/
The most efficient 7 weeks in the
history of software development…
16.5 Person-Years of Technical Debt vanished!
http://nemo.sonarqube.org/
The most efficient 7 weeks in the
history of software development…
16.5 Person-Years of Technical Debt vanished!
http://nemo.sonarqube.org/
Let’s zoom-in…
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
are these separate problems?
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
who “authorized”
these thresholds?
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
reducing CYCLO takes
only 1 min / branch ?
http://nemo.sonarqube.org/
reducing CYCLO takes
only 1 min / branch ?
reducing CYCLO for class
is easier (137’) than for
methods (285’)
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
http://nemo.sonarqube.org/
never knew it’s so easy
to change a signature!
http://nemo.sonarqube.org/
but what if…
but what if…
http://nemo.sonarqube.org/
solving duplication
does only depend on
the number of blocks?
http://nemo.sonarqube.org/
…are these 2 cases equally easy?
…
Image from http://imgur.com/gallery/iWKad22
Let’s summarize…
1 Irrelevant Warnings
1 Irrelevant Warnings
2 Misleading Debt Quantification
1 Irrelevant Warnings
2 Misleading Debt Quantification
3 Toxic/Stupid Refactoring Advices
1 Irrelevant Warnings
2 Misleading Debt Quantification
3 Toxic/Stupid Refactoring Advices
4 Phony Thresholds
Why
?
Technical Debt
The first scary things was bugs
http://www.google.com/imgres?imgurl=http://micheltriana.com/
wp-content/uploads/2010/12/
resharper-8x6.png&imgrefurl=http://micheltriana.com/
2010/12/01/configuring-resharper-code-analysis/
&h=459&w=640&tbnid=MFJydOmaXXj3xM:&zoom=1&docid=e0
dqbvDRdbGVSM&ei=xOEcVaXfOsiWaoa6gJAI&tbm=isch&client
=safari&ved=0CBwQMygAMAA
http://www.google.com/imgres?imgurl=http://micheltriana.com/
wp-content/uploads/2010/12/
resharper-8x6.png&imgrefurl=http://micheltriana.com/
2010/12/01/configuring-resharper-code-analysis/
&h=459&w=640&tbnid=MFJydOmaXXj3xM:&zoom=1&docid=e0
dqbvDRdbGVSM&ei=xOEcVaXfOsiWaoa6gJAI&tbm=isch&client
=safari&ved=0CBwQMygAMAA
but then we realised…
Most maintenance effort goes into
understanding
messy code
47%
19%
6%
28%
Testing Documenting
Coding Understanding
M. Ben-Menachem and G. S. Marliss. Software quality: Producing practical, consistent software. International Thomson Computer Press, 1997
Bugs
error-prone
Bugs
Time
hard to maintain
error-prone
… and bugs also usually hide in
messy code
Checkstyle
!We missed
an essential distinction
=
Strategic Flaws
Tactical Flaws
Execution Flaws
…system
…statements
…classes
and functions
How do I
design the…
Execution flaws Tactical flaws
Execution flaws Tactical flaws
Execution flaws Tactical flaws
Execution flaws Tactical flaws
Execution flaws Tactical flaws
PSA
PSA Gleason
PSA Gleason
PSA Gleason
?what about tactical problems
public class TarHeader{
/**
* The entry's name.
*/
public StringBuffer name;
/**
* The entry's permission mode.
*/
public int mode;
/**
* The entry's user id.
*/
public int userId;
/**
* The entry's group id.
*/
public int groupId;
}
public
/**
* The entry's name.
*/
/**
* The entry's permission mode.
*/
int
/**
* The entry's user id.
*/
/**
* The entry's group id.
*/
int
}
public
public
public
public
public
/**
* The entry's name.
*/
/**
* The entry's permission mode.
*/
int
/**
* The entry's user id.
*/
/**
* The entry's group id.
*/
int
}
public
public
public
public
Data
Class
public
/**
* The entry's name.
*/
/**
* The entry's permission mode.
*/
/**
* The entry's user id.
*/
/**
* The entry's group id.
*/
int
}
public
/**
* The entry's name.
*/
/**
* The entry's permission mode.
*/
/**
* The entry's user id.
*/
/**
* The entry's group id.
*/
int
}
private
private
private
private
public
/**
* The entry's name.
*/
/**
* The entry's permission mode.
*/
/**
* The entry's user id.
*/
/**
* The entry's group id.
*/
int
}
private
private
private
private
Encapsulate public data
(in TarHeader)1
compile errors!
public class {
public void parseTarHeader( TarHeader hdr, byte[] header ){
int offset = 0;
hdr.name = TarHeader.parseName( header, offset,
TarHeader.NAMELEN );
offset += TarHeader.NAMELEN;
hdr.mode = (int)TarHeader.parseOctal( header, offset,
TarHeader.MODELEN );
offset += TarHeader.MODELEN;
hdr.userId = (int)TarHeader.parseOctal( header, offset,
TarHeader.UIDLEN );
offset += TarHeader.UIDLEN;
hdr.groupId = (int)TarHeader.parseOctal( header, offset,
TarHeader.GIDLEN );
}
TarEntry
public
public
hdr.
TarHeader.
offset += TarHeader.
hdr.
TarHeader.
offset += TarHeader.
hdr.
TarHeader.
offset += TarHeader.
hdr.
TarHeader
}
TarEntry
TarHeader hdr
hdr.name
hdr.mode
hdr.userId
hdr.groupId
parseTarHeader
public
public
hdr.
TarHeader.
offset += TarHeader.
hdr.
TarHeader.
offset += TarHeader.
hdr.
TarHeader.
offset += TarHeader.
hdr.
TarHeader
}
TarEntry
TarHeader hdr
hdr.name
hdr.mode
hdr.userId
hdr.groupId
parseTarHeader
Move the method
(TarEntry > TarHeader)1
public
public
hdr.
TarHeader.
offset += TarHeader.
hdr.
TarHeader.
offset += TarHeader.
hdr.
TarHeader.
offset += TarHeader.
hdr.
TarHeader
}
TarEntry
TarHeader hdr
hdr.name
hdr.mode
hdr.userId
hdr.groupId
parseTarHeader
Encapsulate public data
(in TarHeader)2
Move the method
(TarEntry > TarHeader)1
however …
public
public
int
hdr.
header, offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader
}
public
int
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
long
offset = TarHeader.getLongOctalBytes
( size, outbuf, offset, TarHeader.
}
hdr.mode = (int)TarHeader.parseOctal( header,
hdr.mode = (int)TarHeader.parseOctal( header,
offset, TarHeader.MODELEN );
offset, TarHeader.MODELEN );
offset += TarHeader.MODELEN;
offset += TarHeader.MODELEN;
hdr.userId = (int)TarHeader.parseOctal( header,
hdr.userId = (int)TarHeader.parseOctal( header,
offset, TarHeader.UIDLEN );
offset, TarHeader.UIDLEN );
parseTarHeader
writeEntryHeader
public
public
int
hdr.
header, offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader
}
public
int
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
long
offset = TarHeader.getLongOctalBytes
( size, outbuf, offset, TarHeader.
}
hdr.mode = (int)TarHeader.parseOctal( header,
hdr.mode = (int)TarHeader.parseOctal( header,
offset, TarHeader.MODELEN );
offset, TarHeader.MODELEN );
offset += TarHeader.MODELEN;
offset += TarHeader.MODELEN;
hdr.userId = (int)TarHeader.parseOctal( header,
hdr.userId = (int)TarHeader.parseOctal( header,
offset, TarHeader.UIDLEN );
offset, TarHeader.UIDLEN );
parseTarHeader
writeEntryHeader
Duplicated
Code
public
public
int
hdr.
header, offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader
}
public
int
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
long
offset = TarHeader.getLongOctalBytes
( size, outbuf, offset, TarHeader.
}
hdr.mode
hdr.mode
offset, TarHeader.
offset, TarHeader.
offset += TarHeader.
offset += TarHeader.
hdr.userId
hdr.userId
offset, TarHeader.
offset, TarHeader.
parseTarHeader
writeEntryHeader
Extract method
(by factoring out the duplicated code)1
public
public
int
hdr.
header, offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader
}
public
int
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
long
offset = TarHeader.getLongOctalBytes
( size, outbuf, offset, TarHeader.
}
hdr.mode
hdr.mode
offset, TarHeader.
offset, TarHeader.
offset += TarHeader.
offset += TarHeader.
hdr.userId
hdr.userId
offset, TarHeader.
offset, TarHeader.
parseTarHeader
writeEntryHeader
Extract method
(by factoring out the duplicated code)1
Move the newly created method
(in TarHeader)2
public
public
int
hdr.
header, offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader
}
public
int
hdr.
offset, TarHeader.
offset += TarHeader.
hdr.
offset, TarHeader.
long
offset = TarHeader.getLongOctalBytes
( size, outbuf, offset, TarHeader.
}
hdr.mode
hdr.mode
offset, TarHeader.
offset, TarHeader.
offset += TarHeader.
offset += TarHeader.
hdr.userId
hdr.userId
offset, TarHeader.
offset, TarHeader.
parseTarHeader
writeEntryHeader
Extract method
(by factoring out the duplicated code)1
Move the newly created method
(in TarHeader)2
Encapsulate public data
(in TarHeader)3
yet, there is an alternative solution…
Move data
(TarHeader > TarEntry)1
Move data
(TarHeader > TarEntry)1
Encapsulate public data
(in TarEntry)2
vs.
Extract method
(out of the duplicated code)1
Move the newly created method
(in TarHeader)2
Encapsulate public data
(in TarHeader)3
Move data
(TarHeader > TarEntry)1
Encapsulate public data
(in TarEntry)2
vs.
Which solution is best?
Extract method
(out of the duplicated code)1
Move the newly created method
(in TarHeader)2
Encapsulate public data
(in TarHeader)3
Move data
(TarHeader > TarEntry)1
Encapsulate public data
(in TarEntry)2
Only the developer
who knows the context
can decide!
?How to dealwith
tactical flaws
start with
symptom indicators
Checkstyle
Lorenz, Kidd, 1994
Chidamber, Kemerer, 1994
LOC - number of lines of code
CYCLO - cyclomatic complexity of a function
NOF - number of functions
FANOUT - outgoing coupling
NOA - number of attributes
DIT - depth of inheritance tree
TCC - tight class cohesion
…
The problem is…
Image from pickywallpapers.com
!Tactical flaws must be treated as
first-class entities
!…and symptoms must be
aggregated
for example…
from S.Demeyer, S.Ducasse, O.Nierstrasz - Object-Oriented Reengineering Patterns, 2003
from S.Demeyer, S.Ducasse, O.Nierstrasz - Object-Oriented Reengineering Patterns, 2003
from S.Demeyer, S.Ducasse, O.Nierstrasz - Object-Oriented Reengineering Patterns, 2003
or another example…
God Classes
use data from small data-classes,
centralize the intelligence of the system,
and do everything.
A.Riel, 1996
God Classes
break encapsulation, and
are complex, and
are not cohesive.
A.Riel, 1996
ATFD > FEW
Class uses directly more than a
few attributes of other classes
WMC ≥ VERY HIGH
Functional complexity of the
class is very high
TCC < ONE THIRD
Class cohesion is low
AND GodClass
from M.Lanza, R.Marinescu - Object-Oriented Metrics in Prac
but there is
one more problem
when dealing with metrics…
Thresholds
who “authorized”
these thresholds?
Experts, right?
Image from http://www.dilbert.com
5 projects?!?!
< 100 classes?!?!
Michele Lanza
Radu Marinescu
Object-Oriented
Metrics
in Practice
Using Software Metrics to
Characterize, Evaluate, and Improve
the Design of Object-Oriented Systems
Foreword by Stéphane Ducasse
1 3
Michele Lanza
Radu Marinescu
Object-Oriented
Metrics
in Practice
Using Software Metrics to
Characterize, Evaluate, and Improve
the Design of Object-Oriented Systems
Foreword by Stéphane Ducasse
1 3
37/45 projects…
4800 projects(SourceForge)
300.000.000 lines of code
4800 projects(SourceForge)
300.000.000 lines of code inFusion
4800 projects(SourceForge)
300.000.000 lines of code inFusion
Wrapping it up…
#1
Distinguish tactical flaws
from execution flaws
#2
Don’t correct tactical flaws
by fixing isolated symptoms
#3
Correcting tactical flaws
requires exploration tools
#3
Correcting tactical flaws
requires exploration tools
powerful
Flaw Summary
Flaw Summary
Visualization
Metrics
Related flaws
Source Highlighter
Dependency Breakout
#4
Improve
technical debt calculators
#5
Build massive collection of
curated measurement data
“ ”
A single arrow is easily broken, but not ten in a bundle.
Japanese proverb
Measuring Software:
From Data to Actionable Knowledge
16 May 2015
International Workshop on Software Architecture and Metrics
Radu Marinescu
radumarinescu@me.com
@radu_marinescu

More Related Content

Viewers also liked

I Social Media spiegati a Gino, produttore di vino
I Social Media spiegati a Gino, produttore di vinoI Social Media spiegati a Gino, produttore di vino
I Social Media spiegati a Gino, produttore di vinoElisabetta Tosi
 
Week6 Presentation 3
Week6 Presentation 3Week6 Presentation 3
Week6 Presentation 3kserate21
 
Dr. Mack T. Hines, III - National FORUM Journals
Dr. Mack T. Hines, III - National FORUM JournalsDr. Mack T. Hines, III - National FORUM Journals
Dr. Mack T. Hines, III - National FORUM JournalsWilliam Kritsonis
 
Moodle Strategy for Small Business
Moodle Strategy for Small BusinessMoodle Strategy for Small Business
Moodle Strategy for Small BusinessRhys Moult
 
Horizontal Navigation for BBC part 1
Horizontal Navigation for BBC part 1Horizontal Navigation for BBC part 1
Horizontal Navigation for BBC part 1onpause
 
DeSE: Final Crit Program
DeSE: Final Crit ProgramDeSE: Final Crit Program
DeSE: Final Crit ProgramSami Nerenberg
 
Get the most out of your LinkedIn Profile for Digital Enterprise Program
Get the most out of your LinkedIn Profile for Digital Enterprise ProgramGet the most out of your LinkedIn Profile for Digital Enterprise Program
Get the most out of your LinkedIn Profile for Digital Enterprise ProgramRhys Moult
 
National FORUM of Teacher Education Journal, Dr. William Allan Kritsonis, Ed...
National FORUM of Teacher Education Journal,  Dr. William Allan Kritsonis, Ed...National FORUM of Teacher Education Journal,  Dr. William Allan Kritsonis, Ed...
National FORUM of Teacher Education Journal, Dr. William Allan Kritsonis, Ed...William Kritsonis
 
Manuscript submission guidelines for a hard copy journal
Manuscript submission guidelines for a hard copy journalManuscript submission guidelines for a hard copy journal
Manuscript submission guidelines for a hard copy journalWilliam Kritsonis
 

Viewers also liked (16)

WelcometoourSchool
WelcometoourSchoolWelcometoourSchool
WelcometoourSchool
 
Analítica web: Métricas clave para entender a nuestros usuarios
Analítica web: Métricas clave para entender a nuestros usuariosAnalítica web: Métricas clave para entender a nuestros usuarios
Analítica web: Métricas clave para entender a nuestros usuarios
 
生命密碼 20110224
生命密碼 20110224生命密碼 20110224
生命密碼 20110224
 
I Social Media spiegati a Gino, produttore di vino
I Social Media spiegati a Gino, produttore di vinoI Social Media spiegati a Gino, produttore di vino
I Social Media spiegati a Gino, produttore di vino
 
Jordans hokkaido
Jordans hokkaidoJordans hokkaido
Jordans hokkaido
 
Good karma dalai lama
Good karma dalai lamaGood karma dalai lama
Good karma dalai lama
 
Week6 Presentation 3
Week6 Presentation 3Week6 Presentation 3
Week6 Presentation 3
 
Dr. Mack T. Hines, III - National FORUM Journals
Dr. Mack T. Hines, III - National FORUM JournalsDr. Mack T. Hines, III - National FORUM Journals
Dr. Mack T. Hines, III - National FORUM Journals
 
Care u-care-me
Care u-care-meCare u-care-me
Care u-care-me
 
Moodle Strategy for Small Business
Moodle Strategy for Small BusinessMoodle Strategy for Small Business
Moodle Strategy for Small Business
 
Hokey Pokey
Hokey PokeyHokey Pokey
Hokey Pokey
 
Horizontal Navigation for BBC part 1
Horizontal Navigation for BBC part 1Horizontal Navigation for BBC part 1
Horizontal Navigation for BBC part 1
 
DeSE: Final Crit Program
DeSE: Final Crit ProgramDeSE: Final Crit Program
DeSE: Final Crit Program
 
Get the most out of your LinkedIn Profile for Digital Enterprise Program
Get the most out of your LinkedIn Profile for Digital Enterprise ProgramGet the most out of your LinkedIn Profile for Digital Enterprise Program
Get the most out of your LinkedIn Profile for Digital Enterprise Program
 
National FORUM of Teacher Education Journal, Dr. William Allan Kritsonis, Ed...
National FORUM of Teacher Education Journal,  Dr. William Allan Kritsonis, Ed...National FORUM of Teacher Education Journal,  Dr. William Allan Kritsonis, Ed...
National FORUM of Teacher Education Journal, Dr. William Allan Kritsonis, Ed...
 
Manuscript submission guidelines for a hard copy journal
Manuscript submission guidelines for a hard copy journalManuscript submission guidelines for a hard copy journal
Manuscript submission guidelines for a hard copy journal
 

Similar to Measuring Software: From Data to Actionable Knowledge

6.2 sustainability system design tools vezzoli 10-11 (32)
6.2 sustainability system design tools vezzoli 10-11 (32)6.2 sustainability system design tools vezzoli 10-11 (32)
6.2 sustainability system design tools vezzoli 10-11 (32)LeNS_slide
 
R programming for psychometrics
R programming for psychometricsR programming for psychometrics
R programming for psychometricsDiane Talley
 
Faster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypesFaster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypesOSCON Byrum
 
Java Generics Adoption: How New Features are Introduced Championed or Ignored
Java Generics Adoption: How New Features are Introduced Championed or IgnoredJava Generics Adoption: How New Features are Introduced Championed or Ignored
Java Generics Adoption: How New Features are Introduced Championed or IgnoredChris Parnin
 
Reduce, Reuse, Refactor
Reduce, Reuse, RefactorReduce, Reuse, Refactor
Reduce, Reuse, Refactorcklosowski
 
Data Modelling at Scale
Data Modelling at ScaleData Modelling at Scale
Data Modelling at ScaleDavid Simons
 
The Research Software Encyclopedia
The Research Software EncyclopediaThe Research Software Encyclopedia
The Research Software EncyclopediaVanessa S
 
PostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestPostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestAndrea Adami
 
Reproducible Workflow with Cytoscape and Jupyter Notebook
Reproducible Workflow with Cytoscape and Jupyter NotebookReproducible Workflow with Cytoscape and Jupyter Notebook
Reproducible Workflow with Cytoscape and Jupyter NotebookKeiichiro Ono
 
Open Analytics Environment
Open Analytics EnvironmentOpen Analytics Environment
Open Analytics EnvironmentIan Foster
 
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys PROIDEA
 
What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?Marcus Hellberg
 
Artificial Intelligence and Machine Learning
Artificial Intelligence and Machine LearningArtificial Intelligence and Machine Learning
Artificial Intelligence and Machine LearningAbhishek Sharma
 
4Developers: Norbert Wójtowicz- Data-Oriented Architecture
4Developers: Norbert Wójtowicz- Data-Oriented Architecture4Developers: Norbert Wójtowicz- Data-Oriented Architecture
4Developers: Norbert Wójtowicz- Data-Oriented ArchitecturePROIDEA
 

Similar to Measuring Software: From Data to Actionable Knowledge (20)

OpenML DALI
OpenML DALIOpenML DALI
OpenML DALI
 
6.2 sustainability system design tools vezzoli 10-11 (32)
6.2 sustainability system design tools vezzoli 10-11 (32)6.2 sustainability system design tools vezzoli 10-11 (32)
6.2 sustainability system design tools vezzoli 10-11 (32)
 
R programming for psychometrics
R programming for psychometricsR programming for psychometrics
R programming for psychometrics
 
Designing Testable Software
Designing Testable SoftwareDesigning Testable Software
Designing Testable Software
 
Faster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypesFaster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypes
 
Java Generics Adoption: How New Features are Introduced Championed or Ignored
Java Generics Adoption: How New Features are Introduced Championed or IgnoredJava Generics Adoption: How New Features are Introduced Championed or Ignored
Java Generics Adoption: How New Features are Introduced Championed or Ignored
 
Reduce, Reuse, Refactor
Reduce, Reuse, RefactorReduce, Reuse, Refactor
Reduce, Reuse, Refactor
 
Recommender Systems and Linked Open Data
Recommender Systems and Linked Open DataRecommender Systems and Linked Open Data
Recommender Systems and Linked Open Data
 
Data Modelling at Scale
Data Modelling at ScaleData Modelling at Scale
Data Modelling at Scale
 
The Research Software Encyclopedia
The Research Software EncyclopediaThe Research Software Encyclopedia
The Research Software Encyclopedia
 
PostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestPostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit Test
 
Reproducible Workflow with Cytoscape and Jupyter Notebook
Reproducible Workflow with Cytoscape and Jupyter NotebookReproducible Workflow with Cytoscape and Jupyter Notebook
Reproducible Workflow with Cytoscape and Jupyter Notebook
 
Open Analytics Environment
Open Analytics EnvironmentOpen Analytics Environment
Open Analytics Environment
 
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
 
MyMediaLite
MyMediaLiteMyMediaLite
MyMediaLite
 
What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?
 
Kanban in Action
Kanban in ActionKanban in Action
Kanban in Action
 
Artificial Intelligence and Machine Learning
Artificial Intelligence and Machine LearningArtificial Intelligence and Machine Learning
Artificial Intelligence and Machine Learning
 
Supraja_SMS_presentation
Supraja_SMS_presentationSupraja_SMS_presentation
Supraja_SMS_presentation
 
4Developers: Norbert Wójtowicz- Data-Oriented Architecture
4Developers: Norbert Wójtowicz- Data-Oriented Architecture4Developers: Norbert Wójtowicz- Data-Oriented Architecture
4Developers: Norbert Wójtowicz- Data-Oriented Architecture
 

Recently uploaded

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Recently uploaded (20)

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Measuring Software: From Data to Actionable Knowledge