Semantics-driven migration of Java programs: a practical experience
Modelirovanie i analiz informacionnyh sistem, Tome 24 (2017) no. 6, pp. 677-690.

Voir la notice de l'article provenant de la source Math-Net.Ru

The purpose of the study is to demonstrate the feasibility of automated code migration to a new set of programming libraries. Code migration is a common task in modern software projects. For example, it may arise when a project should be ported to a more secure or feature-rich library, a new platform or a new version of an already used library. The developed method and tool are based on the previously created by the authors a formalism for describing libraries semantics. The formalism specifies a library behaviour by using a system of extended finite state machines (EFSM). This paper outlines the metamodel designed to specify library descriptions and proposes an easy to use domain-specific language (DSL), which can be used to define models for particular libraries. The mentioned metamodel directly forms the code migration procedure. A process of migration is split into five steps, and each step is also described in the paper. The procedure uses an algorithm based on the breadth-first search extended for the needs of the migration task. Models and algorithms were implemented in the prototype of an automated code migration tool. The prototype was tested by both artificial code examples and a real-world open source project. The article describes the experiments performed, the difficulties that have arisen in the process of migration of test samples, and how they are solved in the proposed procedure. The results of experiments indicate that code migration can be successfully automated.
Keywords: software library, behavioral description
Mots-clés : code migration, program transformation.
@article{MAIS_2017_24_6_a1,
     author = {A. O. Aleksyuk and V. M. Itsykson},
     title = {Semantics-driven migration of {Java} programs: a practical experience},
     journal = {Modelirovanie i analiz informacionnyh sistem},
     pages = {677--690},
     publisher = {mathdoc},
     volume = {24},
     number = {6},
     year = {2017},
     language = {ru},
     url = {http://geodesic.mathdoc.fr/item/MAIS_2017_24_6_a1/}
}
TY  - JOUR
AU  - A. O. Aleksyuk
AU  - V. M. Itsykson
TI  - Semantics-driven migration of Java programs: a practical experience
JO  - Modelirovanie i analiz informacionnyh sistem
PY  - 2017
SP  - 677
EP  - 690
VL  - 24
IS  - 6
PB  - mathdoc
UR  - http://geodesic.mathdoc.fr/item/MAIS_2017_24_6_a1/
LA  - ru
ID  - MAIS_2017_24_6_a1
ER  - 
%0 Journal Article
%A A. O. Aleksyuk
%A V. M. Itsykson
%T Semantics-driven migration of Java programs: a practical experience
%J Modelirovanie i analiz informacionnyh sistem
%D 2017
%P 677-690
%V 24
%N 6
%I mathdoc
%U http://geodesic.mathdoc.fr/item/MAIS_2017_24_6_a1/
%G ru
%F MAIS_2017_24_6_a1
A. O. Aleksyuk; V. M. Itsykson. Semantics-driven migration of Java programs: a practical experience. Modelirovanie i analiz informacionnyh sistem, Tome 24 (2017) no. 6, pp. 677-690. http://geodesic.mathdoc.fr/item/MAIS_2017_24_6_a1/

[1] Itsykson V. M., “The Formalism and Language Tools for Semantics Specification of Software Libraries”, Modeling and Analysis of Information Systems, 23:6 (2016), 754–766 (in Russian) | MR

[2] Baxter I.D., Pidgeon C., Mehlich M., “DMS/spl reg: program transformations for practical scalable software evolution”, Proceedings of 26th International Conference on Software Engineering, IEEE, 2004, 625–634 | DOI

[3] Bravenboer M. et al., “Stratego/XT 0.17. A language and toolset for program transformation”, Science of computer programming, 72:1 (2008), 52–70 | DOI | MR

[4] Broeksema B., Telea A., “Visual support for porting large code bases”, 2011 6th IEEE International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT), IEEE, 2011, 1–8

[5] Christoph A., Müller M.M., “GREAT: UML transformation tool for porting middleware applications”, International Conference on the Unified Modeling Language, Lecture Notes in Computer Science, 2863, Springer, 2003, 18–30 | DOI | MR

[6] Cordy J.R., “The TXL source transformation language”, Science of Computer Programming, 61:3 (2006), 190–210 | DOI | MR | Zbl

[7] Eisenbarth T., Koschke R., Vogel G., “Static trace extraction”, Proc. Ninth Working Conference on Reverse Engineering, IEEE, 2002, 128–137 | DOI

[8] Filman R.E., Havelund K., “Source-code instrumentation and quantification of events”, Workshop on Foundations of Aspect-Oriented Languages (FOAL) at AOSD Conference (Twente, Netherlands, 2002), 45–49

[9] Jemerov D., “Implementing refactorings in IntelliJ IDEA”, Proceedings of the 2nd Workshop on Refactoring Tools, ACM, 2008, 13

[10] Marosi A.C., Balaton Z., Kacsuk P., “GenWrapper: A generic wrapper for running legacy applications on desktop grids”, 2009 IEEE International Symposium on Parallel Distributed Processing, ACM, 2009, 1–6

[11] Wu L. et al., “Transforming Code with Compositional Mappings for API-Library Switching”, 2015 IEEE 39th Annual Computer Software and Applications Conference, v. 2, 2015, 316–325 | MR | Zbl

[12] A conformant OpenGL ES implementation for Windows, Mac and Linux, (visited on 03.09.2017) https://github.com/google/angle

[13] Simple Logging Facade for Java (SLF4J), , visited on 03.09.2017 https://www.slf4j.org/

[14] JetBrains, Statically typed programming language for the JVM, Android and the browser, (visited on 03.09.2017) https://kotlinlang.org/