Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
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
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