SlideShare a Scribd company logo
1 of 39
Download to read offline
July 2, 2020
Machine Learning-based Tools
to Support Library Update
Oleksandr Zaitsev
Inria, Univ. Lille, CNRS, Centrale Lille,
UMR 9189 - CRIStAL, Arolla
oleksandr.zaitsev@inria.fr
Report for the follow-up PhD committee
Background
- CIFRE PhD together with Arolla software company
Supervisor: Mathieu Eveillard
- Inria Lille (RMoD team)
Supervisors: Stéphane Ducasse, Nicolas Anquetil
- I started my PhD on July 15, 2019
2
Consulting company specialised in
the advanced techniques of software
development:
Clean Code, TDD, BDD, Legacy
Remediation, etc.
3
4
A dynamic, reflective,
pure object-oriented
programming language
and development
environment in the
tradition of Smalltalk
5
Library Update
Client
System
Client
Developer
External
Library
v1.0
depends
Library
Developer
6
Library Update
Client
System
Client
Developer
External
Library
v2.0
External
Library
v1.0
depends
commit
history
Library Evolution
Library
Developer
7
Client
System
Updated
Client
System
rules
Library Update
Client
Developer
External
Library
v2.0
depends
External
Library
v1.0
depends
commit
history
Library Evolution
Library
Developer
Update
Client
System
ent
loper
External
Library
v1.0
depends
ary
loper
8
public class Collection<E> {
…
public boolean includesAllOf(Collection<E> values) {
return values.forEach(value -> {
this.includes(value);
});
}
…
}
import Collection;
…
Collection<String> products = new Collection<String>();
products.add(“apple”);
products.add(“banana”);
products.add(“pear”);
if (products.includesAllOf([“apple”, “pear”]) { … }
Collection.jar
Main.java
Collection
v1.0
Update
Client
System
ent
loper
External
Library
v1.0
depends
ary
loper
9
public class Collection<E> {
…
public boolean containsAll(Collection<E> values) {
return values.forEach(value -> {
this.includes(value);
});
}
…
}
import Collection;
…
Collection<String> products = new Collection<String>();
products.add(“apple”);
products.add(“banana”);
products.add(“pear”);
if (products.includesAllOf([“apple”, “pear”]) { … }
Collection.jar
Main.java
Collection
v2.0
10
`@rec.includesAllOf(`@arg) -> `@rec.containsAll(`@arg)
Example of a Transformation Rule
import Collection;
…
Collection<String> products = new Collection<String>();
products.add(“apple”);
products.add(“banana”);
products.add(“pear”);
if (products.includesAllOf([“apple”, “pear”]) { … }
11
`@rec.includesAllOf(`@arg) -> `@rec.containsAll(`@arg)
Transformation Rule
import Collection;
…
Collection<String> products = new Collection<String>();
products.add(“apple”);
products.add(“banana”);
products.add(“pear”);
if (products.containsAll([“apple”, “pear”]) { … }
12
Client
System
Updated
Client
System
rules
Library Update
Client
Developer
External
Library
v2.0
depends
External
Library
v1.0
depends
commit
history
Library Evolution
Library
Developer
Library Migration
— the problem of migrating a client system from one external
library to a completely different one (e.g. easymock → mockito)
13
Library Update
— the problem of updating a client system to the new version of
the same library (e.g. Struts v1.2.8 → Struts v1.2.9)
Library Migration
— the problem of migrating a client system from one external
library to a completely different one (e.g. easymock → mockito)
14
Library Update
— the problem of updating a client system to the new version of
the same library (e.g. Struts v1.2.8 → Struts v1.2.9)
my PhD
Objectives of my PhD
15
Propose a set of automatic or semi-automatic tools that can support
client developers in the problem of updating software systems to the
new versions of external libraries.
Targeted for both Arolla developers and the Pharo Community.
Objectives of my PhD
16
Identify the challenging
scenarios of library
update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
17
Source
Code
Commit
History
Mining rules from
commit history
Mining rules from
source code
Language for
expressing code
transformations
Applying
transformation
rules
Deprewriter
Detecting
challenging
scenarios
Client
Developer
Client
Code
Library
Developer
Library Update Toolkit
recommendations
for manual changes
Library Update Toolkit
Source
Code
Commit
History
Mining rules from
commit history
Mining rules from
source code
Language for
expressing code
transformations
Applying
transformation
rules
Deprewriter
Detecting
challenging
scenarios
Client
Developer
Client
Code
Library
Developer
Library Update Toolkit
recommendations
for manual changes
18
Use Case 1
Library developers provide a library update script
Source
Code
Commit
History
Mining rules from
commit history
Mining rules from
source code
Language for
expressing code
transformations
Applying
transformation
rules
Deprewriter
Detecting
challenging
scenarios
Client
Developer
Client
Code
Library
Developer
Library Update Toolkit
recommendations
for manual changes
19
Use Case 2
Client developers mine transformation rules from source code
Source
Code
Commit
History
Mining rules from
commit history
Mining rules from
source code
Language for
expressing code
transformations
Applying
transformation
rules
Deprewriter
Detecting
challenging
scenarios
Client
Developer
Client
Code
Library
Developer
Library Update Toolkit
recommendations
for manual changes
20
Use Case 3
Client developers mine transformation rules from the commit history
Current Progress
21
Identify the
challenging scenarios
of library update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
Current Progress
22
Identify the
challenging scenarios
of library update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
Technical report
documenting the
analysis of
deprecations in
Pharo 8
Current Progress
23
Identify the
challenging scenarios
of library update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
Technical report
documenting the
analysis of
deprecations in
Pharo 8
Documentation of
three challenging
stories of library
update (draft for the
future paper)
Current Progress
24
Identify the
challenging scenarios
of library update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
Technical report
documenting the
analysis of
deprecations in
Pharo 8
Documentation of
three challenging
stories of library
update (draft for the
future paper)
Implementation and
documentation of
the A-Priori
algorithm in Pharo
Current Progress
25
Identify the
challenging scenarios
of library update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
Technical report
documenting the
analysis of
deprecations in
Pharo 8
Documentation of
three challenging
stories of library
update (draft for the
future paper)
Implementation and
documentation of
the A-Priori
algorithm in Pharo
Mining the library
update rules from
commit history using
the A-Priori
algorithm (first
results for the paper)
Current Progress
26
Identify the
challenging scenarios
of library update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
Technical report
documenting the
analysis of
deprecations in
Pharo 8
Documentation of
three challenging
stories of library
update (draft for the
future paper)
Implementation and
documentation of
the A-Priori
algorithm in Pharo
Mining the library
update rules from
commit history using
the A-Priori
algorithm (first
results for the paper)
Deprewriter: on the
fly rewriting method
deprecations
(journal paper)
Current Progress
27
Identify the
challenging scenarios
of library update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
Technical report
documenting the
analysis of
deprecations in
Pharo 8
Documentation of
three challenging
stories of library
update (draft for the
future paper)
Implementation and
documentation of
the A-Priori
algorithm in Pharo
Mining the library
update rules from
commit history using
the A-Priori
algorithm (first
results for the paper)
Deprewriter: on the
fly rewriting method
deprecations
(journal paper)
side projects
Current Progress
28
Identify the
challenging scenarios
of library update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
Technical report
documenting the
analysis of
deprecations in
Pharo 8
Documentation of
three challenging
stories of library
update (draft for the
future paper)
Implementation and
documentation of
the A-Priori
algorithm in Pharo
Mining the library
update rules from
commit history using
the A-Priori
algorithm (first
results for the paper)
Deprewriter: on the
fly rewriting method
deprecations
(journal paper)
The study of magic
literals in Pharo
(published workshop
paper + future
journal paper)
side projects
Current Progress
29
Identify the
challenging scenarios
of library update
Mining library update
rules from source code
and commit history
Building the toolkit for
the library update
Technical report
documenting the
analysis of
deprecations in
Pharo 8
Documentation of
three challenging
stories of library
update (draft for the
future paper)
Implementation and
documentation of
the A-Priori
algorithm in Pharo
Mining the library
update rules from
commit history using
the A-Priori
algorithm (first
results for the paper)
Deprewriter: on the
fly rewriting method
deprecations
(journal paper)
The study of magic
literals in Pharo
(published workshop
paper + future
journal paper)
Machine learning
approaches for
generating method
names
(accepted
conference paper)
side projects
Next Steps
30
Identify the
challenging scenarios
of library update
Objective 1:
Done:
To do:
Technical report
documenting the
analysis of
deprecations in
Pharo 8
Documentation of
three challenging
stories of library
update (draft for the
future paper)
Interview developers
from Arolla to collect
their stories of library
update
Write a journal
paper
Example of a Challenging Transformation
31
public class Website {
…
public String shortUrl() {
return “facebook.com”;
}
public String url() {
return “https://www.” + this.shortUrl();
}
…
}
Website-2.0.jar
public class Website {
…
public String shortUrl() {
return “bit.ly/4G7jeo”;
}
public String url() {
return “facebook.com”;
}
public String fullUrl() {
return “https://www.” + this.url();
}
…
}
Website-1.0.jar
Next Steps
32
Objective 2:
Done:
To do:
Mining library update
rules from source code
and commit history
Implementation and
documentation of
the A-Priori
algorithm in Pharo Mining the library
update rules from
commit history using
the A-Priori
algorithm (first
results for the paper)
Conference paper
about mining the
library update rules
from commit history
using the A-Priori
algorithm
Explore alternative
machine learning
and data mining
algorithms for
mining the library
update rules
Propose solutions for
the non-trivial library
update scenarios
Next Steps
33
Objective 3:
Doing:
To do:
Building the toolkit for
the library update
Deprewriter: on the
fly rewriting method
deprecations
(journal paper)
Implement a tool for
mining library
update rules from
commit history
Implement a tool for
mining library
update rules from
source code
Enhance the
Deprewriter
Implement a tool for
detecting the
challenging library
update scenarios
and recommending
manual changes
Timeline
34
Propose solutions for
the non-trivial library
update scenarios
Implement a tool for
mining library
update rules from
commit history
Implement a tool for
mining library
update rules from
source code
Enhance the
Deprewriter
Implement a tool for
detecting the
challenging library
update scenarios
and recommending
manual changes
PhD year 2
(2020-2021)
PhD year 3
(2021-2022)
Writing my thesis
summer autumn winter spring
summer autumn winter spring
Interview developers
from Arolla to collect
their stories of library
update
Conference paper
about mining the
library update rules
from commit history
using the A-Priori
algorithm
Write a journal
paper
Explore alternative
machine learning
and data mining
algorithms for
mining the library
update rules
Publications
- (to be submitted) Stéphane Ducasse, Guillermo Polito, Oleksandr Zaitsev, Marcus Denker, Pablo
Tesone. Deprewriter: On the fly rewriting method deprecations.
- (accepted) Oleksandr Zaitsev, Stéphane Ducasse, Alexandre Bergel, Mathieu Eveillard.
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Learning
Approaches. Quality of Information and Communications Technology 13th International
Conference, QUATIC 2020
- Oleksandr Zaitsev, Stéphane Ducasse, Nicolas Anquetil. Characterizing Pharo Code: A Technical
Report. Inria Lille Nord Europe - Laboratoire CRIStAL - Université de Lille; Arolla. 2020.
〈hal-02440055〉
- Julien Delplanque, Stéphane Ducasse, Oleksandr Zaitsev. Magic Literals in Pharo. IWST19 -
International Workshop on Smalltalk Technologies, Aug 2019, Köln, Germany.〈hal-02266137〉
35
During the 1st year of my PhD (between July 2019 and July 2020)
PhD Training Modules
During the 1st year of my PhD (between July 2019 and July 2020)
36
5 credits Effective Reading
2 credits How to better motivate our students
5 credits Time management
4 credits Français langue étrangère (FLE)
Total: 16 credits
20 credits ESUG summer school 2020
10 credits Français langue étrangère (FLE)
Total: 30 credits
Registered in ADUM Done but not registered yet
Summary: 16 credits + 30 expected out of 40 credits required for CIFRE PhD
Teaching Experience
During the 1st year of my PhD (between July 2019 and July 2020)
37
Supervised the Bachelor’s
thesis of Myroslava
Romaniuk
~15 hours TD
Ukrainian Catholic
University
February 2020 —

June 2020
Programming in C for M1
and M2 students
6 hours CM +

8 hours TD +

18 hours TP
Lille Polytech
September 2019 —

April 2020
Supervised Master’s
Seminar
7 hours TD
Ukrainian Catholic
University
September 2019 —

December 2019
Professional Project
After I finish my PhD, I want to pursue an academic career.
What I have in mind is:
- an assistant professor position in one of the French universities
- a researcher position at Inria or CNRS
- a researcher position in Ukraine
38
Thank you for your attention!
39
Propose solutions for
the non-trivial library
update scenarios
Implement a tool for
mining library
update rules from
commit history
Implement a tool for
mining library
update rules from
source code
Enhance the
Deprewriter
Implement a tool for
detecting the
challenging library
update scenarios
and recommending
manual changes
PhD year 2
(2020-2021)
PhD year 3
(2021-2022)
Writing my thesis
summer autumn winter spring
summer autumn winter spring
Interview developers
from Arolla to collect
their stories of library
update
Conference paper
about mining the
library update rules
from commit history
using the A-Priori
algorithm
Write a journal
paper
Explore alternative
machine learning
and data mining
algorithms for
mining the library
update rules

More Related Content

Similar to Machine Learning-based Tools to Support Library Update

Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
AINL Conferences
 

Similar to Machine Learning-based Tools to Support Library Update (20)

CORE APIv3
CORE APIv3CORE APIv3
CORE APIv3
 
6th Content Providers Community Call
6th Content Providers Community Call6th Content Providers Community Call
6th Content Providers Community Call
 
USUGM 2014 - Erin Bolstad (ChemAxon): Consultancy report - New capabilities a...
USUGM 2014 - Erin Bolstad (ChemAxon): Consultancy report - New capabilities a...USUGM 2014 - Erin Bolstad (ChemAxon): Consultancy report - New capabilities a...
USUGM 2014 - Erin Bolstad (ChemAxon): Consultancy report - New capabilities a...
 
KFServing and Feast
KFServing and FeastKFServing and Feast
KFServing and Feast
 
VivaCore - Quick Start
VivaCore - Quick StartVivaCore - Quick Start
VivaCore - Quick Start
 
Infraestrutura para a Ciência Aberta na Europa - OpenAIRE: O poder dos reposi...
Infraestrutura para a Ciência Aberta na Europa - OpenAIRE: O poder dos reposi...Infraestrutura para a Ciência Aberta na Europa - OpenAIRE: O poder dos reposi...
Infraestrutura para a Ciência Aberta na Europa - OpenAIRE: O poder dos reposi...
 
Securing Open Source Code in Enterprise
Securing Open Source Code in EnterpriseSecuring Open Source Code in Enterprise
Securing Open Source Code in Enterprise
 
How VivaCore library appeared
How VivaCore library appearedHow VivaCore library appeared
How VivaCore library appeared
 
10th OpenAIRE Content Providers Community Call
10th OpenAIRE Content Providers Community Call10th OpenAIRE Content Providers Community Call
10th OpenAIRE Content Providers Community Call
 
Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.
 
OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11OpenSAF Symposium_Python Bindings_9.21.11
OpenSAF Symposium_Python Bindings_9.21.11
 
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
Анатолий Старостин (ABBYY) "ABBYY InfoExtractor: технология разработки предме...
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
A Primer on Kubernetes and Google Container Engine
A Primer on Kubernetes and Google Container EngineA Primer on Kubernetes and Google Container Engine
A Primer on Kubernetes and Google Container Engine
 
Pharo3 at Fosdem
Pharo3 at FosdemPharo3 at Fosdem
Pharo3 at Fosdem
 
(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)
(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)
(Live) Annotopia Overview by Paolo Ciccarese (Architect and principal developer)
 
Sword Crig 2007 12 06
Sword Crig 2007 12 06Sword Crig 2007 12 06
Sword Crig 2007 12 06
 
Avogadro, Open Chemistry and Semantics
Avogadro, Open Chemistry and SemanticsAvogadro, Open Chemistry and Semantics
Avogadro, Open Chemistry and Semantics
 
Access the world’s research outputs through the CORE API
Access the world’s research outputs through the CORE API Access the world’s research outputs through the CORE API
Access the world’s research outputs through the CORE API
 
Sword 2007 06 22
Sword 2007 06 22Sword 2007 06 22
Sword 2007 06 22
 

More from Oleksandr Zaitsev

More from Oleksandr Zaitsev (14)

Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
Cormas: Modelling for Citizens with Citizens. Building accessible and reliabl...
 
Cormas RMoD
Cormas RMoDCormas RMoD
Cormas RMoD
 
Cirad Parcours
Cirad ParcoursCirad Parcours
Cirad Parcours
 
Cirad Concours
Cirad ConcoursCirad Concours
Cirad Concours
 
Agent-Based Modelling in Pharo Using Cormas
Agent-Based Modelling in Pharo Using CormasAgent-Based Modelling in Pharo Using Cormas
Agent-Based Modelling in Pharo Using Cormas
 
AI for Software Engineering:
Research & Innovation
AI for Software Engineering:
Research & InnovationAI for Software Engineering:
Research & Innovation
AI for Software Engineering:
Research & Innovation
 
PolyMath (ESUG 2022)
PolyMath (ESUG 2022)PolyMath (ESUG 2022)
PolyMath (ESUG 2022)
 
How Fast is AI in Pharo? Benchmarking Linear Regression
How Fast is AI in Pharo? Benchmarking Linear RegressionHow Fast is AI in Pharo? Benchmarking Linear Regression
How Fast is AI in Pharo? Benchmarking Linear Regression
 
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
 
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...
Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Lear...
 
Introduction to Git Version Control System
Introduction to Git Version Control SystemIntroduction to Git Version Control System
Introduction to Git Version Control System
 
PhD Roadmap
PhD RoadmapPhD Roadmap
PhD Roadmap
 
Magic Literals in Pharo
Magic Literals in PharoMagic Literals in Pharo
Magic Literals in Pharo
 
Aspects of software naturalness through the generation of IdentifierNames
Aspects of software naturalness through the generation of IdentifierNamesAspects of software naturalness through the generation of IdentifierNames
Aspects of software naturalness through the generation of IdentifierNames
 

Recently uploaded

Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
PirithiRaju
 
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
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
Sérgio Sacani
 
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
dkNET
 
Introduction,importance and scope of horticulture.pptx
Introduction,importance and scope of horticulture.pptxIntroduction,importance and scope of horticulture.pptx
Introduction,importance and scope of horticulture.pptx
Bhagirath Gogikar
 
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
ssuser79fe74
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY
1301aanya
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
PirithiRaju
 

Recently uploaded (20)

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
 
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
 
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
Vip profile Call Girls In Lonavala 9748763073 For Genuine Sex Service At Just...
 
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
 
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptxPSYCHOSOCIAL NEEDS. in nursing II sem pptx
PSYCHOSOCIAL NEEDS. in nursing II sem pptx
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
 
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts ServiceJustdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
 
module for grade 9 for distance learning
module for grade 9 for distance learningmodule for grade 9 for distance learning
module for grade 9 for distance learning
 
Zoology 5th semester notes( Sumit_yadav).pdf
Zoology 5th semester notes( Sumit_yadav).pdfZoology 5th semester notes( Sumit_yadav).pdf
Zoology 5th semester notes( Sumit_yadav).pdf
 
9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 22 (Delhi) Call Girl Service
 
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
 
Introduction,importance and scope of horticulture.pptx
Introduction,importance and scope of horticulture.pptxIntroduction,importance and scope of horticulture.pptx
Introduction,importance and scope of horticulture.pptx
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
 
IDENTIFICATION OF THE LIVING- forensic medicine
IDENTIFICATION OF THE LIVING- forensic medicineIDENTIFICATION OF THE LIVING- forensic medicine
IDENTIFICATION OF THE LIVING- forensic medicine
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdf
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
 
❤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 💦✅.
 

Machine Learning-based Tools to Support Library Update

  • 1. July 2, 2020 Machine Learning-based Tools to Support Library Update Oleksandr Zaitsev Inria, Univ. Lille, CNRS, Centrale Lille, UMR 9189 - CRIStAL, Arolla oleksandr.zaitsev@inria.fr Report for the follow-up PhD committee
  • 2. Background - CIFRE PhD together with Arolla software company Supervisor: Mathieu Eveillard - Inria Lille (RMoD team) Supervisors: Stéphane Ducasse, Nicolas Anquetil - I started my PhD on July 15, 2019 2
  • 3. Consulting company specialised in the advanced techniques of software development: Clean Code, TDD, BDD, Legacy Remediation, etc. 3
  • 4. 4 A dynamic, reflective, pure object-oriented programming language and development environment in the tradition of Smalltalk
  • 8. Update Client System ent loper External Library v1.0 depends ary loper 8 public class Collection<E> { … public boolean includesAllOf(Collection<E> values) { return values.forEach(value -> { this.includes(value); }); } … } import Collection; … Collection<String> products = new Collection<String>(); products.add(“apple”); products.add(“banana”); products.add(“pear”); if (products.includesAllOf([“apple”, “pear”]) { … } Collection.jar Main.java Collection v1.0
  • 9. Update Client System ent loper External Library v1.0 depends ary loper 9 public class Collection<E> { … public boolean containsAll(Collection<E> values) { return values.forEach(value -> { this.includes(value); }); } … } import Collection; … Collection<String> products = new Collection<String>(); products.add(“apple”); products.add(“banana”); products.add(“pear”); if (products.includesAllOf([“apple”, “pear”]) { … } Collection.jar Main.java Collection v2.0
  • 10. 10 `@rec.includesAllOf(`@arg) -> `@rec.containsAll(`@arg) Example of a Transformation Rule import Collection; … Collection<String> products = new Collection<String>(); products.add(“apple”); products.add(“banana”); products.add(“pear”); if (products.includesAllOf([“apple”, “pear”]) { … }
  • 11. 11 `@rec.includesAllOf(`@arg) -> `@rec.containsAll(`@arg) Transformation Rule import Collection; … Collection<String> products = new Collection<String>(); products.add(“apple”); products.add(“banana”); products.add(“pear”); if (products.containsAll([“apple”, “pear”]) { … }
  • 13. Library Migration — the problem of migrating a client system from one external library to a completely different one (e.g. easymock → mockito) 13 Library Update — the problem of updating a client system to the new version of the same library (e.g. Struts v1.2.8 → Struts v1.2.9)
  • 14. Library Migration — the problem of migrating a client system from one external library to a completely different one (e.g. easymock → mockito) 14 Library Update — the problem of updating a client system to the new version of the same library (e.g. Struts v1.2.8 → Struts v1.2.9) my PhD
  • 15. Objectives of my PhD 15 Propose a set of automatic or semi-automatic tools that can support client developers in the problem of updating software systems to the new versions of external libraries. Targeted for both Arolla developers and the Pharo Community.
  • 16. Objectives of my PhD 16 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update
  • 17. 17 Source Code Commit History Mining rules from commit history Mining rules from source code Language for expressing code transformations Applying transformation rules Deprewriter Detecting challenging scenarios Client Developer Client Code Library Developer Library Update Toolkit recommendations for manual changes Library Update Toolkit
  • 18. Source Code Commit History Mining rules from commit history Mining rules from source code Language for expressing code transformations Applying transformation rules Deprewriter Detecting challenging scenarios Client Developer Client Code Library Developer Library Update Toolkit recommendations for manual changes 18 Use Case 1 Library developers provide a library update script
  • 19. Source Code Commit History Mining rules from commit history Mining rules from source code Language for expressing code transformations Applying transformation rules Deprewriter Detecting challenging scenarios Client Developer Client Code Library Developer Library Update Toolkit recommendations for manual changes 19 Use Case 2 Client developers mine transformation rules from source code
  • 20. Source Code Commit History Mining rules from commit history Mining rules from source code Language for expressing code transformations Applying transformation rules Deprewriter Detecting challenging scenarios Client Developer Client Code Library Developer Library Update Toolkit recommendations for manual changes 20 Use Case 3 Client developers mine transformation rules from the commit history
  • 21. Current Progress 21 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update
  • 22. Current Progress 22 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update Technical report documenting the analysis of deprecations in Pharo 8
  • 23. Current Progress 23 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update Technical report documenting the analysis of deprecations in Pharo 8 Documentation of three challenging stories of library update (draft for the future paper)
  • 24. Current Progress 24 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update Technical report documenting the analysis of deprecations in Pharo 8 Documentation of three challenging stories of library update (draft for the future paper) Implementation and documentation of the A-Priori algorithm in Pharo
  • 25. Current Progress 25 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update Technical report documenting the analysis of deprecations in Pharo 8 Documentation of three challenging stories of library update (draft for the future paper) Implementation and documentation of the A-Priori algorithm in Pharo Mining the library update rules from commit history using the A-Priori algorithm (first results for the paper)
  • 26. Current Progress 26 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update Technical report documenting the analysis of deprecations in Pharo 8 Documentation of three challenging stories of library update (draft for the future paper) Implementation and documentation of the A-Priori algorithm in Pharo Mining the library update rules from commit history using the A-Priori algorithm (first results for the paper) Deprewriter: on the fly rewriting method deprecations (journal paper)
  • 27. Current Progress 27 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update Technical report documenting the analysis of deprecations in Pharo 8 Documentation of three challenging stories of library update (draft for the future paper) Implementation and documentation of the A-Priori algorithm in Pharo Mining the library update rules from commit history using the A-Priori algorithm (first results for the paper) Deprewriter: on the fly rewriting method deprecations (journal paper) side projects
  • 28. Current Progress 28 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update Technical report documenting the analysis of deprecations in Pharo 8 Documentation of three challenging stories of library update (draft for the future paper) Implementation and documentation of the A-Priori algorithm in Pharo Mining the library update rules from commit history using the A-Priori algorithm (first results for the paper) Deprewriter: on the fly rewriting method deprecations (journal paper) The study of magic literals in Pharo (published workshop paper + future journal paper) side projects
  • 29. Current Progress 29 Identify the challenging scenarios of library update Mining library update rules from source code and commit history Building the toolkit for the library update Technical report documenting the analysis of deprecations in Pharo 8 Documentation of three challenging stories of library update (draft for the future paper) Implementation and documentation of the A-Priori algorithm in Pharo Mining the library update rules from commit history using the A-Priori algorithm (first results for the paper) Deprewriter: on the fly rewriting method deprecations (journal paper) The study of magic literals in Pharo (published workshop paper + future journal paper) Machine learning approaches for generating method names (accepted conference paper) side projects
  • 30. Next Steps 30 Identify the challenging scenarios of library update Objective 1: Done: To do: Technical report documenting the analysis of deprecations in Pharo 8 Documentation of three challenging stories of library update (draft for the future paper) Interview developers from Arolla to collect their stories of library update Write a journal paper
  • 31. Example of a Challenging Transformation 31 public class Website { … public String shortUrl() { return “facebook.com”; } public String url() { return “https://www.” + this.shortUrl(); } … } Website-2.0.jar public class Website { … public String shortUrl() { return “bit.ly/4G7jeo”; } public String url() { return “facebook.com”; } public String fullUrl() { return “https://www.” + this.url(); } … } Website-1.0.jar
  • 32. Next Steps 32 Objective 2: Done: To do: Mining library update rules from source code and commit history Implementation and documentation of the A-Priori algorithm in Pharo Mining the library update rules from commit history using the A-Priori algorithm (first results for the paper) Conference paper about mining the library update rules from commit history using the A-Priori algorithm Explore alternative machine learning and data mining algorithms for mining the library update rules Propose solutions for the non-trivial library update scenarios
  • 33. Next Steps 33 Objective 3: Doing: To do: Building the toolkit for the library update Deprewriter: on the fly rewriting method deprecations (journal paper) Implement a tool for mining library update rules from commit history Implement a tool for mining library update rules from source code Enhance the Deprewriter Implement a tool for detecting the challenging library update scenarios and recommending manual changes
  • 34. Timeline 34 Propose solutions for the non-trivial library update scenarios Implement a tool for mining library update rules from commit history Implement a tool for mining library update rules from source code Enhance the Deprewriter Implement a tool for detecting the challenging library update scenarios and recommending manual changes PhD year 2 (2020-2021) PhD year 3 (2021-2022) Writing my thesis summer autumn winter spring summer autumn winter spring Interview developers from Arolla to collect their stories of library update Conference paper about mining the library update rules from commit history using the A-Priori algorithm Write a journal paper Explore alternative machine learning and data mining algorithms for mining the library update rules
  • 35. Publications - (to be submitted) Stéphane Ducasse, Guillermo Polito, Oleksandr Zaitsev, Marcus Denker, Pablo Tesone. Deprewriter: On the fly rewriting method deprecations. - (accepted) Oleksandr Zaitsev, Stéphane Ducasse, Alexandre Bergel, Mathieu Eveillard. Suggesting Descriptive Method Names: An Exploratory Study of Two Machine Learning Approaches. Quality of Information and Communications Technology 13th International Conference, QUATIC 2020 - Oleksandr Zaitsev, Stéphane Ducasse, Nicolas Anquetil. Characterizing Pharo Code: A Technical Report. Inria Lille Nord Europe - Laboratoire CRIStAL - Université de Lille; Arolla. 2020. 〈hal-02440055〉 - Julien Delplanque, Stéphane Ducasse, Oleksandr Zaitsev. Magic Literals in Pharo. IWST19 - International Workshop on Smalltalk Technologies, Aug 2019, Köln, Germany.〈hal-02266137〉 35 During the 1st year of my PhD (between July 2019 and July 2020)
  • 36. PhD Training Modules During the 1st year of my PhD (between July 2019 and July 2020) 36 5 credits Effective Reading 2 credits How to better motivate our students 5 credits Time management 4 credits Français langue étrangère (FLE) Total: 16 credits 20 credits ESUG summer school 2020 10 credits Français langue étrangère (FLE) Total: 30 credits Registered in ADUM Done but not registered yet Summary: 16 credits + 30 expected out of 40 credits required for CIFRE PhD
  • 37. Teaching Experience During the 1st year of my PhD (between July 2019 and July 2020) 37 Supervised the Bachelor’s thesis of Myroslava Romaniuk ~15 hours TD Ukrainian Catholic University February 2020 — June 2020 Programming in C for M1 and M2 students 6 hours CM +
 8 hours TD +
 18 hours TP Lille Polytech September 2019 — April 2020 Supervised Master’s Seminar 7 hours TD Ukrainian Catholic University September 2019 —
 December 2019
  • 38. Professional Project After I finish my PhD, I want to pursue an academic career. What I have in mind is: - an assistant professor position in one of the French universities - a researcher position at Inria or CNRS - a researcher position in Ukraine 38
  • 39. Thank you for your attention! 39 Propose solutions for the non-trivial library update scenarios Implement a tool for mining library update rules from commit history Implement a tool for mining library update rules from source code Enhance the Deprewriter Implement a tool for detecting the challenging library update scenarios and recommending manual changes PhD year 2 (2020-2021) PhD year 3 (2021-2022) Writing my thesis summer autumn winter spring summer autumn winter spring Interview developers from Arolla to collect their stories of library update Conference paper about mining the library update rules from commit history using the A-Priori algorithm Write a journal paper Explore alternative machine learning and data mining algorithms for mining the library update rules