Семантически-ориентированная миграция Java-программ: опыт практического применения


https://doi.org/10.18255/1818-1015-2017-6-677-690

Полный текст:


Аннотация

Данная статья посвящена разработке процедуры автоматизированной миграции Java-программ на новый набор библиотек. Задача миграции (портирования) кода часто встречается в современных программных проектах. Например, такая задача может возникнуть, когда проект необходимо перенести на более безопасную или функциональную библиотеку, на новую платформу или на новую версию уже используемой в проекте библиотеки. В данной работе представлена процедура автоматизированной миграции, основанная на семантическом подходе. Для процедуры миграции была разработана метамодель библиотеки, использующая предложенный ранее авторами формализм и предназначенная для описания библиотек на объектно-ориентированных языках. Формализм описывает поведение библиотек с помощью системы расширенных конечных автоматов (РКА). Процедура миграции разбита на пять шагов, каждый шаг подробно описан в тексте статьи. В процедуре используется алгоритм вычисления эквивалентной трассы на основе поиска в ширину, расширенный для решения задач миграции. Предложенная процедура реализована в прототипе инструмента миграции. Инструмент включает в себя модули извлечения трассы выполнения программ, визуализации моделей библиотек, взаимодействия с пользователем и непосредственно миграции. Для инструмента был разработан язык описания библиотек. Прототип инструмента был протестирован как на искусственных примерах, так и на существующем проекте. В статье подробно описаны проведенные эксперименты, отдельно отмечены сложности, возникающие в процессе миграции тестовых примеров, и то, как они решаются в предложенной процедуре. В качестве библиотек в экспериментах используются реализации протокола HTTP и библиотеки протоколирования. Результаты тестирования показали, что миграция кода может быть успешно автоматизирована с использованием разработанной процедуры.

 


Об авторах

Артем Олегович Алексюк
Санкт-Петербургский политехнический университет Петра Великого
Россия
студент


Владимир Михайлович Ицыксон
Санкт-Петербургский политехнический университет Петра Великого
Россия
канд. техн. наук, доцент


Список литературы

1. Ицыксон В. М., “Формализм и языковые инструменты для описания семантики программных библиотек”, Моделирование и анализ информационных систем, 23:6 (2016), 754–766

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.

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.

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

5. Christoph A., M¨uller M.M., “GREAT: UML transformation tool for porting middleware applications”, International Conference on the Unified Modeling Language, Springer, 2003, 18–30.

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

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

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, 2, 2015, 316–325.

12. “A conformant OpenGL ES implementation for Windows, Mac and Linux”, https:// github.com/google/angle, visited on 03.09.2017.

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

14. JetBrains, “Statically typed programming language for the JVM, Android and the browser”, https://kotlinlang.org/, visited on 03.09.2017.


Дополнительные файлы

Для цитирования: Алексюк А.О., Ицыксон В.М. Семантически-ориентированная миграция Java-программ: опыт практического применения. Моделирование и анализ информационных систем. 2017;24(6):677-690. https://doi.org/10.18255/1818-1015-2017-6-677-690

For citation: Aleksyuk A.O., Itsykson V.M. Semantics-Driven Migration of Java Programs: a Practical Experience. Modeling and Analysis of Information Systems. 2017;24(6):677-690. (In Russ.) https://doi.org/10.18255/1818-1015-2017-6-677-690

Просмотров: 171

Обратные ссылки

  • Обратные ссылки не определены.


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 1818-1015 (Print)
ISSN 2313-5417 (Online)