Генерація багатоцільових формальних моделей із успадкованого коду

У роботі запропоновано метод генерації формальних моделей із коду успадкованих систем. Призначення таких моделей полягає в можливості застосування в різних задачах, таких як автоматична генерація виконуваних тестів, трансляція в сучасні мови програмування, зворотня інженерія. Робота переслідує цілі...

Повний опис

Збережено в:
Бібліографічні деталі
Опубліковано в: :Проблеми програмування
Дата:2022
Автори: Потієнко, С.В., Колчин, О.В.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Інститут програмних систем НАН України 2022
Теми:
Онлайн доступ:https://nasplib.isofts.kiev.ua/handle/123456789/188627
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Генерація багатоцільових формальних моделей із успадкованого коду / С.В. Потієнко, О.В. Колчин // Проблеми програмування. — 2022. — № 3-4. — С. 42-50. — Бібліогр.: 16 назв. — укр.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id nasplib_isofts_kiev_ua-123456789-188627
record_format dspace
spelling Потієнко, С.В.
Колчин, О.В.
2023-03-10T18:00:43Z
2023-03-10T18:00:43Z
2022
Генерація багатоцільових формальних моделей із успадкованого коду / С.В. Потієнко, О.В. Колчин // Проблеми програмування. — 2022. — № 3-4. — С. 42-50. — Бібліогр.: 16 назв. — укр.
1727-4907
DOI: https://doi.org/10.15407/pp2022.03-04.042
https://nasplib.isofts.kiev.ua/handle/123456789/188627
004.414.23+004.416.6+004.4’414+004.4’418
У роботі запропоновано метод генерації формальних моделей із коду успадкованих систем. Призначення таких моделей полягає в можливості застосування в різних задачах, таких як автоматична генерація виконуваних тестів, трансляція в сучасні мови програмування, зворотня інженерія. Робота переслідує цілі зменшення складності пошуку в просторі станів та перевірки виконуваності формул по відношенню до прямого моделювання коду, а також допомоги в розумінні успадкованих систем та їх імплементації в сучасних технологіях. Основна увага приділена формалізації моделі пам’яті мови Cobol, адже це найбільш поширена мова в успадкованих системах. Формальна модель є атрибутною транзиційною системою з потоком керування. Запропоновано алгоритм побудови перелічуваних типів для будь-яких змінних, використання яких відповідає певним умовам, в тому числі наведена процедура трансляції числових змінних в перелічувані. Розглянута проблема трансляції неспівставних структур даних, що перетинаються в пам’яті (оператор redefines мови Cobol), копіюються чи порівнюються між собою. На відміну від поширеного підходу використання семантики об’єднань (подібного до конструкції union в С++), розроблено метод, що полягає в розбитті полів структур і не має недоліків об’єднань та сприяє мінімізації побайтного підходу. Створений метод розглянуто на прикладах структур як з простими полями так і з масивами. Наведені приклади реалізації побайтного підходу в мовах Java та C++ для тих змінних, що неможливо представити у вигляді атрибутів перелічуваних або числових типів. Робота була випробувана для генерації тестів на проєктах середнього розміру (до 100 000 рядків коду), що показало ефективність розробленого методу, а згенеровані формальні моделі також були використані для відлагодження транслятору Cobol в Java та видобутку бізнес правил.
In this paper a method for generation of formal models from legacy systems code is proposed. The purpose of these models is to have a possibility of their application in different tasks such as automatic generation of executable tests, translation to modern programming languages, reverse engineering. The method pursues goals to decrease complexity of state space search and checking formulas satisfiability in relation to the direct code modeling, and to help legacy systems understanding and implementing in modern technologies. We focused on formalization of Cobol memory model as it is the most common language in legacy systems. Formal model is an attribute transition system with control flow. We proposed an algorithm for building enumerated types for any variables whose usage fulfills certain conditions, including translation procedure of numeric variables to enumerated ones. We considered a problem of translating non-comparable structures which overlap in memory (operator redefines in Cobol), are copied or compared with each other. In opposite to common approach of using union semantics (like union construction in C++), we described a method of structure fields decomposition which has no drawbacks of unions and makes for minimization of bytewise approach. We considered the developed method on the examples of structures as with simple fields as with arrays. We also gave examples of realization of bytewise approach in Java and C++ languages for those variables that cannot be represented as enumerated or numeric attributes. We tried this work for tests generation for middle-sized projects (up to 100 000 lines of code) where it showed efficiency of developed method, also generated formal models were used for debugging of Cobol to Java translator and business rules extraction.
uk
Інститут програмних систем НАН України
Проблеми програмування
Теоретичні і методологічні основи програмування
Генерація багатоцільових формальних моделей із успадкованого коду
Generation of multipurpose formal models from legacy code
Article
published earlier
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
title Генерація багатоцільових формальних моделей із успадкованого коду
spellingShingle Генерація багатоцільових формальних моделей із успадкованого коду
Потієнко, С.В.
Колчин, О.В.
Теоретичні і методологічні основи програмування
title_short Генерація багатоцільових формальних моделей із успадкованого коду
title_full Генерація багатоцільових формальних моделей із успадкованого коду
title_fullStr Генерація багатоцільових формальних моделей із успадкованого коду
title_full_unstemmed Генерація багатоцільових формальних моделей із успадкованого коду
title_sort генерація багатоцільових формальних моделей із успадкованого коду
author Потієнко, С.В.
Колчин, О.В.
author_facet Потієнко, С.В.
Колчин, О.В.
topic Теоретичні і методологічні основи програмування
topic_facet Теоретичні і методологічні основи програмування
publishDate 2022
language Ukrainian
container_title Проблеми програмування
publisher Інститут програмних систем НАН України
format Article
title_alt Generation of multipurpose formal models from legacy code
description У роботі запропоновано метод генерації формальних моделей із коду успадкованих систем. Призначення таких моделей полягає в можливості застосування в різних задачах, таких як автоматична генерація виконуваних тестів, трансляція в сучасні мови програмування, зворотня інженерія. Робота переслідує цілі зменшення складності пошуку в просторі станів та перевірки виконуваності формул по відношенню до прямого моделювання коду, а також допомоги в розумінні успадкованих систем та їх імплементації в сучасних технологіях. Основна увага приділена формалізації моделі пам’яті мови Cobol, адже це найбільш поширена мова в успадкованих системах. Формальна модель є атрибутною транзиційною системою з потоком керування. Запропоновано алгоритм побудови перелічуваних типів для будь-яких змінних, використання яких відповідає певним умовам, в тому числі наведена процедура трансляції числових змінних в перелічувані. Розглянута проблема трансляції неспівставних структур даних, що перетинаються в пам’яті (оператор redefines мови Cobol), копіюються чи порівнюються між собою. На відміну від поширеного підходу використання семантики об’єднань (подібного до конструкції union в С++), розроблено метод, що полягає в розбитті полів структур і не має недоліків об’єднань та сприяє мінімізації побайтного підходу. Створений метод розглянуто на прикладах структур як з простими полями так і з масивами. Наведені приклади реалізації побайтного підходу в мовах Java та C++ для тих змінних, що неможливо представити у вигляді атрибутів перелічуваних або числових типів. Робота була випробувана для генерації тестів на проєктах середнього розміру (до 100 000 рядків коду), що показало ефективність розробленого методу, а згенеровані формальні моделі також були використані для відлагодження транслятору Cobol в Java та видобутку бізнес правил. In this paper a method for generation of formal models from legacy systems code is proposed. The purpose of these models is to have a possibility of their application in different tasks such as automatic generation of executable tests, translation to modern programming languages, reverse engineering. The method pursues goals to decrease complexity of state space search and checking formulas satisfiability in relation to the direct code modeling, and to help legacy systems understanding and implementing in modern technologies. We focused on formalization of Cobol memory model as it is the most common language in legacy systems. Formal model is an attribute transition system with control flow. We proposed an algorithm for building enumerated types for any variables whose usage fulfills certain conditions, including translation procedure of numeric variables to enumerated ones. We considered a problem of translating non-comparable structures which overlap in memory (operator redefines in Cobol), are copied or compared with each other. In opposite to common approach of using union semantics (like union construction in C++), we described a method of structure fields decomposition which has no drawbacks of unions and makes for minimization of bytewise approach. We considered the developed method on the examples of structures as with simple fields as with arrays. We also gave examples of realization of bytewise approach in Java and C++ languages for those variables that cannot be represented as enumerated or numeric attributes. We tried this work for tests generation for middle-sized projects (up to 100 000 lines of code) where it showed efficiency of developed method, also generated formal models were used for debugging of Cobol to Java translator and business rules extraction.
issn 1727-4907
url https://nasplib.isofts.kiev.ua/handle/123456789/188627
citation_txt Генерація багатоцільових формальних моделей із успадкованого коду / С.В. Потієнко, О.В. Колчин // Проблеми програмування. — 2022. — № 3-4. — С. 42-50. — Бібліогр.: 16 назв. — укр.
work_keys_str_mv AT potíênkosv generacíâbagatocílʹovihformalʹnihmodeleiízuspadkovanogokodu
AT kolčinov generacíâbagatocílʹovihformalʹnihmodeleiízuspadkovanogokodu
AT potíênkosv generationofmultipurposeformalmodelsfromlegacycode
AT kolčinov generationofmultipurposeformalmodelsfromlegacycode
first_indexed 2025-12-07T20:52:12Z
last_indexed 2025-12-07T20:52:12Z
_version_ 1850884209057464320