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