SlideShare a Scribd company logo
1 of 24
Download to read offline
Evolu&on	of	database	access	technologies	
in	Java-based	so6ware	projects	
Loup	Meurice	
Anthony	Cleve	
Csaba	Nagy	
University	of	Namur,	Belgium	
h?p://informa&que.umons.ac.be/genlog/projects/disse	
EOSESE	2015	—	Lille,	France,	3	December	2015	
	Tom	Mens	
Mathieu	Goeminne	
Alexandre	Decan	
University	of	Mons,	Belgium
EOSESE	–	Lille,	France,		3	December	2015	
• Context:	Interuniversity	FNRS-funded	research	
project	between	Université	de	Mons	
and	Université	de	Namur	
• Focus:	Empirical	analysis	of	co-evolu&on	between	program	
code	and	database	(schema)	in	data-intensive	so6ware	
systems	
• Goal:	Provide	be?er	support	for	such	co-evolu&on	to	
so6ware	developers	and	project	managers	
• This	presenta&on:	Study	usage	and	evolu&on	of	rela&onal	
database	access	(RDBA)	technologies	for	open	source	Java	
systems	
Data-Intensive	So6ware	
System	Evolu&on
Focus	
3	
•  Java	RDBA	technologies
4	
Focus	
•  Java	RDBA	technologies
EOSESE	–	Lille,	France,		3	December	2015	 5	
1 < h i b e r n a t e mapping>
2 < c l a s s name=" Customer " t a b l e =" AppCustomers ">
3 < id name=" id " type =" i n t " column=" id " / >
4 < p r o p e r t y name="name" column="name" type =" S t r i n g " / >
5 < / c l a s s >
6 < / h i b e r n a t e mapping>
Example of using JPA annotations:
1 @Entity
2 @Table ( name=" AppCustomers " )
3 public c l a s s Customer {
4 @Id
5 private i n t id ;
6 S t r i n g name ;
7 [ . . . ]
8 }
Example of using Hibernate Query Language (HQL):
1 public List <Customer > findAllCustomers ( ) {
2 S t r i n g hql = " s e l e c t c from Customer c " ;
3 return executeQuery ( hql ) ;
4 }
5 public L i s t executeQuery ( S t r i n g hql ) {
6 return s e s s i o n . createQuery ( hql ) . l i s t ( ) ;
7 }
8 public Customer findCustomer ( I n t e g e r id ) {
9 return ( Customer ) s e s s i o n . get ( Customer . class , id ) ;
10 }
Example of direct object manipulation using ActiveJDBC:
1 List <Customer > customers = Customer . where ( "name = ’ John Doe ’ " ) ;
2 Customer john = customers . get ( 0 ) ;
3 john . setName ( " John Smith " ) ;
4 john . s a v e I t ( ) ;
Figure 2: Four examples of Java ORM usage.
6
The mapping can take many different forms, as illustrated in Figure 2. The first example shows
the use of Hibernate configuration files (i.e., .hbm.xml). The second example illustrates the
use of Java annotations based on JPA, the standard API in Java for ORM and data persistence
management. Such a mapping may allow direct operations on objects, attributes and relationships
instead of tables and columns. This is commonly referred as the active record pattern.
Some ORM libraries also provide SQL-inspired languages that allow to write SQL-like queries
using the mappings defined before. The third example in Figure 2 illustrates the Hibernate Query
Language (HQL), and the fourth example uses the Java Persistence Query Language (JPQL), a
platform-independent object-oriented query language which is defined as part of the JPA specifi-
cation.
Example of using Hibernate configuration files:
1 < h i b e r n a t e mapping>
2 < c l a s s name=" Customer " t a b l e =" AppCustomers ">
3 < id name=" id " type =" i n t " column=" id " / >
4 < p r o p e r t y name="name" column="name" type =" S t r i n g " / >
5 < / c l a s s >
6 < / h i b e r n a t e mapping>
Example of using JPA annotations:
1 @Entity
2 @Table ( name=" AppCustomers " )
3 public c l a s s Customer {
4 @Id
5 private i n t id ;
6 S t r i n g name ;
7 [ . . . ]
8 }
Example of using Hibernate Query Language (HQL):
1 public List <Customer > findAllCustomers ( ) {
2 S t r i n g hql = " s e l e c t c from Customer c " ;
3 return executeQuery ( hql ) ;
4 }
5 public L i s t executeQuery ( S t r i n g hql ) {
6 return s e s s i o n . createQuery ( hql ) . l i s t ( ) ;
7 }
8 public Customer findCustomer ( I n t e g e r id ) {
9 return ( Customer ) s e s s i o n . get ( Customer . class , id ) ;
10 }
Focus	
•  Java	RDBA	technologies
EOSESE	–	Lille,	France,		3	December	2015	
Focus	
•  ORMs	promise	to	reduce	the	
“object-rela&onal	impedance	mismatch”	
•  But	do	they	really?	
•  What	are	the	risks	and	advantages	of	using	a	par&cular	
technology?	
•  How	do	projects	using	ORM	evolve	over	&me?	
•  How	are	mul&ple	ORM	technologies	used	together?	Do	
they	tend	to	complement	or	subs&tute	one	another?	
•  How	are	the	code	and	DB	schema	kept	synchronised?
EOSESE	–	Lille,	France,		3	December	2015	
Coarse-grained	analysis	
•  Empirical	study	on	open	source	Java	projects	
–  13,307	s&ll	ac&ve	Java	projects	extracted	from	GitHub	Java	
Corpus	[Allamanis&Su?on	—	MSR	2013]	
–  4,503	of	them	used	an	RDBA	technology	
–  2,818	projects	used	JDBC,	JPA,	Spring	or	Hibernate
EOSESE	–	Lille,	France,		3	December	2015	
Coarse-grained	analysis	
•  Evolu&on	of	RDBA	technology	usage	
–  Rela&ve	share	of	each	of	the	4	considered	technologies	
•  JDBC	remains	most	prominent,	but	decreasing	share	since	2006	
•  Since	its	introduc&on,	share	of	JPA	con&nues	to	increase
EOSESE	–	Lille,	France,		3	December	2015	
Coarse-grained	analysis	
•  Co-occurrence	of	RDBA	technologies	
–  Many	projects	with	JPA,	Hibernate	or	Spring	also	use	
direct	JDBC	access		
–  38%	of	all	projects	use	at	least	2	technologies		
–  Projects	using	mul&ple	technologies	tend	to	use	them	
simultaneously	(>80%)	
JPA
Spring JDBC
Hibernate
284
167 1239
60
86
124
133
139
16
76
61
64143
46
180
Hibernate	o8en	co-occurs	
with	JPA	(77%)	and	JDBC	(61%)
EOSESE	–	Lille,	France,		3	December	2015	
Coarse-grained	analysis	
•  Introducing	and	removal	of	RDBA	technologies	
–  Technologies	are	introduced	early	in	project	life&me	
–  Technologies	disappear	faster	in	small	than	in	large	
projects	
Introduc&on	&me	 Removal	&me
EOSESE	–	Lille,	France,		3	December	2015	
Coarse-grained	analysis	
•  Introducing	and	removal	of	RDBA	technologies	
–  New	technos	are	introduced	more	o6en	in	large	projects	
–  JDBC	is	not	followed	frequently	by	other	technos	
–  Hibernate	is	frequently	followed	by	another	techno		
“Survival	curve”	
	
Probability	that	a	techno
	remains	the	lastly	
introduced	one	
small	projects	
large	projects
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
•  Research	ques&ons	
•  How	do	developers	decide	to	introduce	new	RDBA	
technologies?	
•  How	and	where	are	par&cular	technologies	used	in	the	
source	code?		
•  Are	database	schema	elements	accessed	by	different	
technologies?	
•  Focus	on	3	par&cular	Java	projects
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
Distribu&on	of	accessed	tables	across	technologies	
•  Hibernate	
complements	JDBC	
•  JPA	replaces	
Hibernate		&	JDBC	
•  Tables	accessed	by	
several	technologies
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
•  Majority	of	tables	
accessed	by	Hibernate	
•  A	few	tables	accessed	
via	JDBC	
•  Some	tables	accessed	by	
both	Hibernate	&JDBC	
Distribu&on	of	accessed	tables	across	technologies
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
•  JPA	only	used		
technology	
•  High	number	of		
unaccessed	tables	
Distribu&on	of	accessed	tables	across	technologies
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
UnIl	introducIon	of	JPA:	
majority	of	files	accessing	
DB	via	Hibernate.		
	
A8er	introducIon	of	JPA:	
progressive	decrease	of	
#files	accessing	DB	
via	Hibernate	and	JDBC	
	
Distribu&on	of	files	accessing	the	database
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
Hibernate	remains	main	
technology	
	
	
JDBC	and	Hibernate	
together	in	some	files		
è	bad	coding	prac&ces?	
Distribu&on	of	files	accessing	the	database
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
Stabiliza&on	in	2013	
Distribu&on	of	files	accessing	the	database
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
•  Majority	of	Hibernate	
mappings	replaced	by	
JPA	mappings.	
•  Big	part	of	DB	schema	
remains	unmapped.	
•  Small	set	of	tables	
contain	both	
Hibernate	and	JPA	
mappings.	
Distribu&on	of	mapped	tables	across	technologies
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
Hibernate	main		
technology	
	
è	majority	of	tables	
with	Hibernate	mapping	
Distribu&on	of	mapped	tables	across	technologies
EOSESE	–	Lille,	France,		3	December	2015	
Fine-grained	analysis	
JPA	only	used		
technology	
	
è majority	of	tables		
with	JPA	mapping	
Distribu&on	of	mapped	tables	across	technologies
EOSESE	–	Lille,	France,		3	December	2015	
•  Coarse-grained	analysis	
–  Technologies	tend	to	be	used	in	combina&on	(especially	for	large	projects)	
–  Some	technologies	(Hibernate)	tend	to	get	replaced	more	o6en	
–  JPA	con&nues	to	increase	its	market	share	
–  In	spite	of	ORM	promises,	“legacy”	technologies	(JDBC)	remain	heavily	used	
–  Newly	introduced	technologies	tend	to	“complement”	exis&ng	ones	
	
•  Fine-grained	analysis	
–  Different	projects	with	very	different	use	of	technologies	
–  Some	tables	can	be	accessed	through	different	technologies	
–  Some	source	code	file	used	mul&ple	technologies	
–  Some	tables/columns	are	not	accessed	è	might	suggest	that	co-evolu&on	
of	schema	and	programs	is	not	always	a	trivial	process	
22	
Conclusions
EOSESE	–	Lille,	France,		3	December	2015	
•  Broaden	the	scope	
–  Non-rela&onal	database	technologies		
–  Closed	source	projects	
–  Non-Java	projects	
•  Study	social	aspects	
–  Different	teams	for	different	technologies?	
Different	teams	for	code	versus	database?	
•  Provide	automated	tool	support	
–  Decisional	support	to	project	managers	to	choose	a	new	techno	
and	to	decide	if,	when	and	how	to	introduce	it	
–  Visualisa&on	support	for	the	code/database	co-evolu&on	and	the	
technology	co-occurrences	
23	
Future	Work
EOSESE	–	Lille,	France,		3	December	2015	
•  L	Meurice,	M	Goeminne,	T	Mens,	C	Nagy,	A	Decan,	A	Cleve.	
Analyzing	the	evoluIon	of	database	usage	in	data-intensive	so8ware	
systems.	[To	appear	in	book	chapter]	
•  M	Goeminne,	T	Mens.	Towards	a	survival	analysis	of	database	
framework	usage	in	Java	projects.	ICSME	2015	ERA	track	
•  M	Goeminne,	A	Decan,	T	Mens.	Co-evolving	code-related	and	
database-related	changes	in	a	data-intensive	so8ware	system.	
CSMR-WCRE	2014	ERA	track		
•  L	Meurice,	A	Cleve.	DAHLIA:	A	visual	analyzer	of	database	schema	
evoluIon.	CSMR-WCRE	2014	Tool	Demo	
•  A	Cleve,	M	Gobert,	L	Meurice,	J	Maes,	J	Weber.	Understanding	
database	schema	evoluIon:	A	case	study.	Science	of	Computer	
Programming	(2013)	
•  A	Cleve,	T	Mens,	J-L	Hainaut.	Data-intensive	system	evoluIon.	IEEE	
Computer	43(8):	110-112	(2010)	
24	
References

More Related Content

What's hot

Chemical Databases and Open Chemistry on the Desktop
Chemical Databases and Open Chemistry on the DesktopChemical Databases and Open Chemistry on the Desktop
Chemical Databases and Open Chemistry on the Desktop
Marcus Hanwell
 
[Thomas chamberlain] learning_om_ne_t++(z-lib.org)
[Thomas chamberlain] learning_om_ne_t++(z-lib.org)[Thomas chamberlain] learning_om_ne_t++(z-lib.org)
[Thomas chamberlain] learning_om_ne_t++(z-lib.org)
wissem hammouda
 
Assessing Galaxy's ability to express scientific workflows in bioinformatics
Assessing Galaxy's ability to express scientific workflows in bioinformaticsAssessing Galaxy's ability to express scientific workflows in bioinformatics
Assessing Galaxy's ability to express scientific workflows in bioinformatics
Peter van Heusden
 
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
Deltares
 
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Rafael Ferreira da Silva
 

What's hot (9)

Chemical Databases and Open Chemistry on the Desktop
Chemical Databases and Open Chemistry on the DesktopChemical Databases and Open Chemistry on the Desktop
Chemical Databases and Open Chemistry on the Desktop
 
Runtime Behavior of JavaScript Programs
Runtime Behavior of JavaScript ProgramsRuntime Behavior of JavaScript Programs
Runtime Behavior of JavaScript Programs
 
Avogadro: Open Source Libraries and Application for Computational Chemistry
Avogadro: Open Source Libraries and Application for Computational ChemistryAvogadro: Open Source Libraries and Application for Computational Chemistry
Avogadro: Open Source Libraries and Application for Computational Chemistry
 
[Thomas chamberlain] learning_om_ne_t++(z-lib.org)
[Thomas chamberlain] learning_om_ne_t++(z-lib.org)[Thomas chamberlain] learning_om_ne_t++(z-lib.org)
[Thomas chamberlain] learning_om_ne_t++(z-lib.org)
 
Assessing Galaxy's ability to express scientific workflows in bioinformatics
Assessing Galaxy's ability to express scientific workflows in bioinformaticsAssessing Galaxy's ability to express scientific workflows in bioinformatics
Assessing Galaxy's ability to express scientific workflows in bioinformatics
 
ResourceSync tutorial OAI8
ResourceSync tutorial OAI8ResourceSync tutorial OAI8
ResourceSync tutorial OAI8
 
A personal journey towards more reproducible networking research
A personal journey towards more reproducible networking researchA personal journey towards more reproducible networking research
A personal journey towards more reproducible networking research
 
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
 
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
Running Accurate, Scalable, and Reproducible Simulations of Distributed Syste...
 

Viewers also liked

Spreadsheets and databases
Spreadsheets and databasesSpreadsheets and databases
Spreadsheets and databases
Diana A. Pérez
 
2.2 data and information
2.2 data and information2.2 data and information
2.2 data and information
mrmwood
 
Database administrator
Database administratorDatabase administrator
Database administrator
Tech_MX
 

Viewers also liked (19)

Smart Migration to JDK 8
Smart Migration to JDK 8Smart Migration to JDK 8
Smart Migration to JDK 8
 
Java 7 - State of the Enterprise
Java 7 - State of the EnterpriseJava 7 - State of the Enterprise
Java 7 - State of the Enterprise
 
Spring Cloud in a Nutshell
Spring Cloud in a NutshellSpring Cloud in a Nutshell
Spring Cloud in a Nutshell
 
Table 5 description of activities and issues with respect to potential envi...
Table 5   description of activities and issues with respect to potential envi...Table 5   description of activities and issues with respect to potential envi...
Table 5 description of activities and issues with respect to potential envi...
 
Databases versus Spreadsheets-do you know where your data is?
Databases versus Spreadsheets-do you know where your data is?Databases versus Spreadsheets-do you know where your data is?
Databases versus Spreadsheets-do you know where your data is?
 
Spreadsheets and databases
Spreadsheets and databasesSpreadsheets and databases
Spreadsheets and databases
 
overview of database concept
overview of database conceptoverview of database concept
overview of database concept
 
Spreadsheet terminology
Spreadsheet terminologySpreadsheet terminology
Spreadsheet terminology
 
Introduction-to-Knowledge Discovery in Database
Introduction-to-Knowledge Discovery in DatabaseIntroduction-to-Knowledge Discovery in Database
Introduction-to-Knowledge Discovery in Database
 
2.2 data and information
2.2 data and information2.2 data and information
2.2 data and information
 
Knowledge Discovery in Databases
Knowledge Discovery in DatabasesKnowledge Discovery in Databases
Knowledge Discovery in Databases
 
Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?
Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?
Microsoft dynamics ax2012 : forms and tables methods call sequences, How To?
 
Kdd process
Kdd processKdd process
Kdd process
 
Spreadsheet basics ppt
Spreadsheet basics pptSpreadsheet basics ppt
Spreadsheet basics ppt
 
'Spreadsheet'
'Spreadsheet''Spreadsheet'
'Spreadsheet'
 
Knowledge Discovery and Data Mining
Knowledge Discovery and Data MiningKnowledge Discovery and Data Mining
Knowledge Discovery and Data Mining
 
Why Google fusion tables is not a Data Integration tool
Why Google fusion tables is not a Data Integration toolWhy Google fusion tables is not a Data Integration tool
Why Google fusion tables is not a Data Integration tool
 
OLAP & DATA WAREHOUSE
OLAP & DATA WAREHOUSEOLAP & DATA WAREHOUSE
OLAP & DATA WAREHOUSE
 
Database administrator
Database administratorDatabase administrator
Database administrator
 

Similar to Evolution of database access technologies in Java-based software projects

OOP lesson1 and Variables.pdf
OOP lesson1 and Variables.pdfOOP lesson1 and Variables.pdf
OOP lesson1 and Variables.pdf
HouseMusica
 
Questions On The Code And Core Module
Questions On The Code And Core ModuleQuestions On The Code And Core Module
Questions On The Code And Core Module
Katie Gulley
 
1 Project 2 Introduction - the SeaPort Project seri.docx
1  Project 2 Introduction - the SeaPort Project seri.docx1  Project 2 Introduction - the SeaPort Project seri.docx
1 Project 2 Introduction - the SeaPort Project seri.docx
honey725342
 
Java Technology
Java TechnologyJava Technology
Java Technology
ifnu bima
 
SURE Research Report
SURE Research ReportSURE Research Report
SURE Research Report
Alex Sumner
 

Similar to Evolution of database access technologies in Java-based software projects (20)

MLOps pipelines using MLFlow - From training to production
MLOps pipelines using MLFlow - From training to productionMLOps pipelines using MLFlow - From training to production
MLOps pipelines using MLFlow - From training to production
 
Ml based detection of users anomaly activities (20th OWASP Night Tokyo, English)
Ml based detection of users anomaly activities (20th OWASP Night Tokyo, English)Ml based detection of users anomaly activities (20th OWASP Night Tokyo, English)
Ml based detection of users anomaly activities (20th OWASP Night Tokyo, English)
 
Xadoop - new approaches to data analytics
Xadoop - new approaches to data analyticsXadoop - new approaches to data analytics
Xadoop - new approaches to data analytics
 
Proof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics InteroperabilityProof of Concept for Learning Analytics Interoperability
Proof of Concept for Learning Analytics Interoperability
 
Introduction to design_patterns
Introduction to design_patternsIntroduction to design_patterns
Introduction to design_patterns
 
Data herding
Data herdingData herding
Data herding
 
Data herding
Data herdingData herding
Data herding
 
OOP lesson1 and Variables.pdf
OOP lesson1 and Variables.pdfOOP lesson1 and Variables.pdf
OOP lesson1 and Variables.pdf
 
Introduction to MLflow
Introduction to MLflowIntroduction to MLflow
Introduction to MLflow
 
Mining Code Examples with Descriptive Text from Software Artifacts
Mining Code Examples with Descriptive Text from Software ArtifactsMining Code Examples with Descriptive Text from Software Artifacts
Mining Code Examples with Descriptive Text from Software Artifacts
 
Questions On The Code And Core Module
Questions On The Code And Core ModuleQuestions On The Code And Core Module
Questions On The Code And Core Module
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
 
03_aiops-1.pptx
03_aiops-1.pptx03_aiops-1.pptx
03_aiops-1.pptx
 
1 Project 2 Introduction - the SeaPort Project seri.docx
1  Project 2 Introduction - the SeaPort Project seri.docx1  Project 2 Introduction - the SeaPort Project seri.docx
1 Project 2 Introduction - the SeaPort Project seri.docx
 
Java Technology
Java TechnologyJava Technology
Java Technology
 
SURE Research Report
SURE Research ReportSURE Research Report
SURE Research Report
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAE
 
Sysml 2019 demo_paper
Sysml 2019 demo_paperSysml 2019 demo_paper
Sysml 2019 demo_paper
 
Hadoop cluster performance profiler
Hadoop cluster performance profilerHadoop cluster performance profiler
Hadoop cluster performance profiler
 

More from Tom Mens

Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Tom Mens
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)
Tom Mens
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package Managers
Tom Mens
 

More from Tom Mens (20)

How to be(come) a successful PhD student
How to be(come) a successful PhD studentHow to be(come) a successful PhD student
How to be(come) a successful PhD student
 
Recognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentRecognising bot activity in collaborative software development
Recognising bot activity in collaborative software development
 
A Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubA Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHub
 
The (r)evolution of CI/CD on GitHub
 The (r)evolution of CI/CD on GitHub The (r)evolution of CI/CD on GitHub
The (r)evolution of CI/CD on GitHub
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the Future
 
Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?
 
On the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubOn the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHub
 
On backporting practices in package dependency networks
On backporting practices in package dependency networksOn backporting practices in package dependency networks
On backporting practices in package dependency networks
 
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
 
Lost in Zero Space
Lost in Zero SpaceLost in Zero Space
Lost in Zero Space
 
Evaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesEvaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messages
 
Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!
 
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
 
On the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsOn the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystems
 
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
 
SecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsSecoHealth 2019 Research Achievements
SecoHealth 2019 Research Achievements
 
SECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarSECO-Assist 2019 research seminar
SECO-Assist 2019 research seminar
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package Managers
 

Recently uploaded

The Philosophy of Science
The Philosophy of ScienceThe Philosophy of Science
The Philosophy of Science
University of Hertfordshire
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
Sérgio Sacani
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
PirithiRaju
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Sérgio Sacani
 

Recently uploaded (20)

Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptxUnlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
 
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
 
Chromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATINChromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATIN
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptx
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdf
 
The Philosophy of Science
The Philosophy of ScienceThe Philosophy of Science
The Philosophy of Science
 
Biological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfBiological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdf
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C P
 
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdf
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Botany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfBotany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdf
 
CELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdfCELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdf
 
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 

Evolution of database access technologies in Java-based software projects