Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур
Предлагаемая статья представляет собой логическое продолжение материала, изложенного в статье «Реализация реинжиниринга программных legacy-систем». В данной статье изложено обоснование подхода к реинжинирингу программных legacy-систем и определяются условия корректного построения комплекса бизнес-пр...
Збережено в:
| Опубліковано в: : | Управляющие системы и машины |
|---|---|
| Дата: | 2009 |
| Автори: | , , , |
| Формат: | Стаття |
| Мова: | Російська |
| Опубліковано: |
Міжнародний науково-навчальний центр інформаційних технологій і систем НАН та МОН України
2009
|
| Теми: | |
| Онлайн доступ: | https://nasplib.isofts.kiev.ua/handle/123456789/82733 |
| Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Цитувати: | Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур / В.И. Гриценко, А.В. Анисимов, Н.Д. Пашковец, О.В. Бабак // Управляющие системы и машины. — 2009. — № 3. — С. 56-64. — Бібліогр.: 3 назв. — рос. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraine| _version_ | 1859617003043553280 |
|---|---|
| author | Гриценко, В.И. Анисимов, А.В. Пашковец, Н.Д. Бабак, О.В. |
| author_facet | Гриценко, В.И. Анисимов, А.В. Пашковец, Н.Д. Бабак, О.В. |
| citation_txt | Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур / В.И. Гриценко, А.В. Анисимов, Н.Д. Пашковец, О.В. Бабак // Управляющие системы и машины. — 2009. — № 3. — С. 56-64. — Бібліогр.: 3 назв. — рос. |
| collection | DSpace DC |
| container_title | Управляющие системы и машины |
| description | Предлагаемая статья представляет собой логическое продолжение материала, изложенного в статье «Реализация реинжиниринга программных legacy-систем». В данной статье изложено обоснование подхода к реинжинирингу программных legacy-систем и определяются условия корректного построения комплекса бизнес-правил, а также описаны алгоритмы построения и методика их проверки.
The article is a logic continuation of the material stated in the article «Realization of reengineering of program legacy-systems». In the present article the substantiation of the approach to reengineering of the program legacy-systems is stated and the conditions of the correct construction of a complex of business-rules are defined, as well as the algorithms of construction and a technique of their check are described.
Пропонована стаття є логічним продовженням матеріалу, викладеного в статті «Реализация реинжиниринга программных legacy-систем». В даній статті подано обґрунтування запропонованого підходу до реінжинірингу програмних legacy-систем і визначаються умови коректної побудови комплексу бізнес-правил, а також описано алгоритми побудови і методика їх перевірки.
|
| first_indexed | 2025-11-28T21:37:07Z |
| format | Article |
| fulltext |
56 УСиМ, 2009, № 3
Программная инженерия и программные средства
УДК 681.3.06
В.И. Гриценко, А.В. Анисимов, Н.Д. Пашковец, О.В. Бабак
Автоматизация построения бизнес-правил в процессе реинжиниринга
программных legacy-систем на этапе анализа их функциональных структур
Предлагаемая статья представляет собой логическое продолжение материала, изложенного в статье «Реализация реинжиниринга
программных legacy-систем». В данной статье изложено обоснование подхода к реинжинирингу программных legacy-систем и оп-
ределяются условия корректного построения комплекса бизнес-правил, а также описаны алгоритмы построения и методика их про-
верки.
The article is a logic continuation of the material stated in the article «Realization of reengineering of program legacy-systems». In the present
article the substantiation of the approach to reengineering of the program legacy-systems is stated and the conditions of the correct construc-
tion of a complex of business-rules are defined, as well as the algorithms of construction and a technique of their check are described.
Пропонована стаття є логічним продовженням матеріалу, викладеного в статті «Реализация реинжиниринга программных legacy-
систем». В даній статті подано обґрунтування запропонованого підходу до реінжинірингу програмних legacy-систем і визнача-
ються умови коректної побудови комплексу бізнес-правил, а також описано алгоритми побудови і методика їх перевірки.
Введение. В работе [1] определено, что про-
цесс реинжиниринга legacy-систем можно раз-
бить на три этапа:
• разбор функциональной структуры legacy-
системы (стадия Preprocessing);
• анализ модулей программной системы на
предмет определения бизнес-терминов, выде-
ления и поиска паттернов с целью написания
бизнес-правил (БП);
• моделирование программной legacy-систе-
мы непосредственно через найденные БП с це-
лью изменения архитектуры программной сис-
темы с учетом новых требований к системе, а
также особенностей применяемых технологи-
ческих и информационных платформ.
В статье изложено обоснование предлагае-
мого подхода к реинжинирингу программных
legacy-систем и описаны алгоритмы, относя-
щиеся к первому этапу, ориентированные на
автоматизацию построения БП на стадии Pre-
processing.
В [1] была положена в основу концепция,
что всякий программный модуль, независимо
от технологии его разработки, в конечном сче-
те состоит из следующих основных компонент:
линейных участков программ, процессов ветв-
ления, процессов вложенности и циклических
процессов. Для формального описания этих кон-
струкций было введено понятие статических и
динамических векторов состояния, соответству-
ющих наборам переменных, связанным с кон-
кретным БП.
Постановка задачи
С учетом изложенного поставлена задача по-
строения конкретных методов и механизмов
автоматического фиксирования и отслежива-
ния состояния логических переменных, связан-
ных с предметной областью, с целью органи-
зации последовательности и контроля вызова
БП, а также определение условий корректного
построения комплекса БП и разработка мето-
дики их проверки при проведении реинжини-
ринга программных legacy-систем.
Решение задачи. Правила описания и по-
строения векторов состояния
В процессе написания конкретного БП, как
составляющего комплекса БП, для него опре-
деляется набор логических условий, опреде-
ленные значения которых вызывают активиза-
цию данного БП. Опыт добывания БП из про-
граммного кода показывает, что из множества
флажков, активизирующих БП, как правило,
один флажок выполняет функцию его началь-
ного включения. Назовем такие флажки (логи-
УСиМ, 2009, № 3 57
ческие условия) первичными. Например, к пер-
вичным можно отнести флажки-сцепления и
объявляемые логические переменные.
Всякий флажок в плане начальной активи-
зации (объявления), как правило, связан с оп-
ределенным БП, но может использоваться во
многих других. В первом случае флажок адек-
ватен первичному, во втором – выполняет роль
дополнительных условий. Поэтому все множе-
ство формируемых флажков комплекса БП це-
лесообразно представить в виде матрицы раз-
мерностью (m + n, m), где m – количество БП,
m + n – количество используемых в них флаж-
ков, а n – количество дополнительных условий.
Подматрица (m, m) предназначена для фиксиро-
вания и отслеживания использования первич-
ных флажков, причем в качестве как первич-
ных, так и дополнительных условий. В под-
матрице (n, m) фиксируется и отслеживается
использование исключительно дополнительных
условий.
Этот принцип отображения множества флаж-
ков на множество БП посредством матричного
представления используем для построения ста-
тических векторов состояния, где столбцы мат-
рицы будут отвечать векторам условий акти-
визации соответствующих БП, а сама матрица
представляет собой набор условий запуска БП.
Рабочая матрица условий запуска БП может
быть построена автоматически путем просмот-
ра всех БП и выборки из них логических пере-
менных (флажков) и условий запуска БП.
При написании БП целесообразно сначала
вручную строить матрицу условий запуска БП,
расширяя ее по мере добавления БП и флаж-
ков, что дает возможность следить за формиро-
ванием условий активизации создаваемых БП
в плане соблюдения их уникальности. Этот про-
цесс поддается автоматизации с выполнением
некоторой оптимизации относительно вводимых
логических переменных в процессе написания
БП, а также для проверки непротиворечивости
запуска БП, что значительно повысит произво-
дительность и качество написания БП.
После построения матрицы условий запуска
БП создается статический вектор состояния
флажков размерностью m + n , в котором будет
фиксироваться текущее состояние всех логи-
ческих переменных комплекса БП. Если ком-
плекс БП построен корректно, то для всякой
конфигурации вектора состояния найдется один
и только один адекватный ему столбец в мат-
рице условий запуска БП, что и вызовет запуск
соответствующего БП.
Дадим определение корректного построения
комплекса БП.
Будем считать, что комплекс БП построен
корректно, если входящие в его состав БП удов-
летворяют условиям: непротиворечивости, пол-
ноты, необходимости и достаточности.
БП непротиворечивы, если все столбцы мат-
рицы условий запуска БП уникальны.
БП достаточны, если для всякой текущей
конфигурации вектора состояния имеется аде-
кватный столбец в матрице условий запуска БП.
БП необходимо, если столбец в матрице ус-
ловий запуска БП активизировался хотя бы
один раз.
Полнота БП в данном случае вытекает из
выполнения условий необходимости и доста-
точности.
Технология фиксирования и отслеживания
состояния динамических объектов, описанных
выше, осуществляется аналогично статическим,
с тем отличием, что матрица и вектор состоя-
ния имеют динамический характер.
Из изложенного видно, что для полустати-
ческих и динамических БП [1] условие активи-
зации является двухуровневым: на первом
уровне проверяется статическая конфигурация
вектора состояния, на втором – динамическая.
Выполнение обоих условий вызывает активи-
зацию БП.
Для унификации активизации БП различ-
ных видов можно ввести отдельный вектор ак-
тивизации правил, представляющий собой би-
нарный вектор, размер которого равен количе-
ству БП. В каждый момент времени в векторе
активизации «включен» только один элемент,
соответствующий по индексу активному БП. В
конце отработки БП этот элемент «выключает-
ся», а элемент, соответствующий активизи-
58 УСиМ, 2009, № 3
руемому БП включается. Таким образом, век-
тор активизации отражает порядок и время
выполнения БП, что позволит организовать
обработку очередей для параллельных процес-
сов и реализацию мультизадачного режима.
С целью облегчения ручного формирования
матрицы условий запуска БП рекомендуется
следующий формат объявления логических
переменных:
F(I):<имя флажка> – для первичных флаж-
ков, где буква F – признак первичности флаж-
ка, а индекс I – номер БП (имеет диапазон из-
менения от единицы до m ).
S(J): <имя флажка> – для дополнительных
флажков, где буква S – признак дополнитель-
ного (вторичного) условия, а индекс J имеет
диапазон изменения от m + 1 до n.
Примеры: F(4):Open file – объявление пер-
вичной логической переменной;
S(36):Move data – объявление дополнитель-
ной логической переменной.
Связь с предметной областью
Изложенный материал касается в основном
организации вычислительного процесса. Рас-
смотрим вопросы связи вычислительного про-
цесса с предметной областью, а именно увязку
БП, работа которых в основном базируется на
обработке логических выражений, с реальными
программными объектами. Такая связь осуще-
ствляется через механизм Action (БП-действия)
[2, 3]. В связи с тем, что изложенный механизм
построения БП не привязывался к языку про-
граммирования, БП-действия можно оформ-
лять в виде отдельных программных блоков на
требуемом языке программирования и с ис-
пользованием различных технологий, в том
числе и объектно-ориентированным. Вероятно,
возможно разрешить для БП-действий вло-
женность, т.е. БП-действие – это не только ли-
нейная последовательность каких-либо дейст-
вий, но и, в свою очередь, программный объ-
ект со своими БП.
БП-действия формируются и накапливают-
ся в процессе написания БП. Языком описания
БП-действия может быть либо конкретный язык
программирования, либо какой-то метаязык, с
которого в нужный язык программирования
осуществляется перевод с помощью програм-
мных средств, в простейшем виде представля-
ющих собой набор соответствующих парсеров.
Для удобства связывания БП и БП-действий
рекомендуется следующий формат объявления
БП-действия:
A(I):<имя действия>,
где буква А – признак действия, индекс I – но-
мер БП (диапазон изменений от единицы до m).
Конкретное БП-действие может использо-
ваться более чем в одном БП. Поэтому в репо-
зитории БП-действия необходимо хранить в ви-
де реляционной таблицы, подобной описанной
матрице условий запуска БП.
Заметим, что проблема представления БП-
действий, от которой существенно зависит эф-
фективность генерируемого выходного кода
очень важна, поэтому, безусловно, является пред-
метом отдельного исследования. Кроме того,
именно через представления БП-действий мож-
но решить вопросы интеграции генерируемого
кода в различные внешние системы или под-
ключать внутренние прикладные задачи.
Общее описание операций, выполняемых
на стадии Preprocessing
Разбор функциональной структуры програм-
мной legacy-системы предполагает выполне-
ние следующих работ.
Построение дерева вызовов модулей сис-
темы с целью выявления активной ее части,
установления порядка и условий вызовов мо-
дулей и отсечения неработающей (мертвой) час-
ти системы. При этом предполагается выпол-
нение следующих действий:
• проведение лексического анализа програм-
мных модулей системы и создание таблиц лек-
сем, соответствующим переменным (построе-
ние таблицы переменных модуля);
• построение дерева вызовов в виде матрицы,
строки которой содержат имена модулей с пе-
речнем имен всех программ и подпрограмм, к
которым имеется обращение из данного модуля.
Определение межмодульных связей с це-
лью построения схемы внутрисистемных и
УСиМ, 2009, № 3 59
межсистемных информационных потоков пу-
тем выявления и занесения входных и выход-
ных данных для каждого модуля в таблицу пе-
ременных модуля. Анализом наследования от-
меченных внешних для модуля данных опре-
деляются межмодульные связи в анализируе-
мой системе. Выполняется настройка парсера
определения межмодульных связей на распо-
знавание тех синтаксических конструкций, ко-
торые реализуют прямую или косвенную пе-
редачу данных между модулями (операторы вы-
зова программ, общие области данных, области
связи и др.) с целью определения имен переда-
ваемых данных и последующей их идентифи-
кацией в таблице переменных модуля. На осно-
вании отмеченной в таблице переменных мо-
дуля информации строится таблица межмодуль-
ных связей, в которой отображается межмо-
дульная передача данных, рассматриваемых как
предполагаемые кандидаты в бизнес-объекты.
Отслеживание связей наследования меж-
ду переменными в рамках отдельных моду-
лей заключается в построении цепочек насле-
дования переменных, связанных между собой
общностью пересылаемых данных. Эти цепочки
идентифицируются именами, которые рассмат-
риваются как кандидаты в бизнес-термины.
Идентификация цепочек наследования пере-
менных выполняется по следующим правилам:
• проверяются первый и последний элемен-
ты цепочки наследования на предмет принад-
лежности их к входным и выходным данным
соответственно. Проверка выполняется на ос-
нове информации из таблицы переменных мо-
дуля;
• если в цепочке наследования имеется вход-
ное данное, то кандидату в бизнес-объект, со-
ответствующему этой цепочке наследования,
будет присвоено имя входной переменной;
• если в цепочке наследования отсутствует
входное данное, но имеется выходное данное,
то кандидату в бизнес-объект, соответствую-
щему этой цепочке наследования, будет при-
своено имя выходной переменной;
• если в цепочке наследования отсутствуют
входное и выходное данные, то кандидату в
бизнес-объект, соответствующему этой цепоч-
ке наследования, будет присвоено имя первой
переменной в цепочке, если она порождена с
участием каких-либо входных данных. В про-
тивном случае предполагается, что цепочка не
связана с бизнес-объектами и исключается из
рассмотрения.
Заметим, что цепочка наследования может
состоять из одной переменной, если в модуле
из нее не происходит никакой пересылки дан-
ных в другие переменные. Эта переменная мо-
жет участвовать в порождении другой пере-
менной или вообще быть пассивной.
Присвоенные имена кандидатов в бизнес-
термины с выделенными цепочками наследо-
вания заносятся в таблицу имен наследования
модуля.
Таблица предполагаемых бизнес-терминов
каждого модуля прилагается к соответствую-
щему модулю при передаче его аналитику для
анализа, и должна послужить для координации
проводимого анализа в плане определения спис-
ка бизнес-терминов.
Алгоритм построения дерева вызова мо-
дулей legacy-системы
Результатом лексического анализа есть вы-
деление синтаксических единиц, называемых
лексемами, для каждого программного модуля
системы. При этом генерируются таблицы, со-
держащие все обнаруженные лексемы и их ти-
пы. Поскольку для выполнения задачи иден-
тификации бизнес-объектов и бизнес-терминов
в первую очередь нужны переменные и смысл,
вкладываемый в них, выполняется первый про-
ход синтаксического анализатора с целью вы-
деления лексем, соответствующих програм-
мным переменным. После этого из сгенериро-
ванных лексическим анализатором таблиц лек-
сем отбираются лексемы, соответствующие пе-
ременным, вследствие чего получаются табли-
цы переменных модуля.
Далее выполняется построение дерева вы-
зовов модулей системы, результатом чего яв-
ляется формирование матрицы, каждая строка
которой поставлена в соответствие определен-
ному модулю анализируемой системы. Первый
60 УСиМ, 2009, № 3
столбец содержит имя этого модуля, а после-
дующие – перечень имен всех программ и под-
программ, к которым имеется обращение из
данного модуля.
На этапе лексического анализа проверяется
цепочка символов, представляющая исходный
текст анализируемого модуля, с целью распо-
знавания лексем обращения к вызываемым
программам.
Для языков программирования Assembler,
COBOL, PL/1, Fortran это лексема CALL. В язы-
ке Assembler имеется лексема FETCH, по кото-
рой программный модуль загружается в па-
мять с последующей передачей ему управле-
ния. Для современных языков программирова-
ния, например семейство С-языков, обращение
к подпрограммам выполняется через механизм
встроенных функций, распознавание которых
возможно в плане разбора соответствующих
синтаксических конструкций, а именно, путем
распознавания имен встроенных функций ис-
ходя из их объявления в декларативной части
программы. В этом случае имена встроенных
функций будут интерпретироваться аналогич-
но лексемам обращения к программам. Следо-
вательно, необходимо предусмотреть настрой-
ку анализатора на распознавание лексем в син-
таксических конструкциях обращения к про-
граммам, присущим языку программирования
анализируемого модуля. Выполнить это можно
созданием специальной таблицы настройки ана-
лизатора, в которой перечисляются поисковые
образы лексем и/или имена встроенных функ-
ций вызова программ для конкретного языка
программирования. Информацию в таблицу на-
стройки записывает анализатор в начале своей
работы, извлекая эту информацию из набора
настройки на входную грамматику.
В начале работы лексический анализатор вы-
деляет поисковые образы, заданные в таблице,
и преобразует таблицу в индексируемый мас-
сив, размер которого будет определяться ко-
личеством поисковых образов. В процессе лек-
сического разбора анализатор будет сканиро-
вать по индексу поисковых образов с целью
распознания их во входной цепочке символов
анализируемой программы, а синтаксический
анализатор будет определять принадлежность
ее к соответствующей синтаксической конст-
рукции.
После распознавания конструкций вызова
программ синтаксический анализатор выделя-
ет имена программ, вызываемых из данного
модуля. Для лексемы CALL это имя (в кавыч-
ках или без кавычек – для некоторых языков),
стоящее после лексемы вызова. В ряде языков
допустимы косвенные вызовы программ, суть
которых заключается в том, что после лексемы
CALL стоит не имя вызываемой программы в
форме литерала, а имя переменной, в качестве
значения которой в декларативном операторе
программы в процессе инициализации при-
сваивается имя вызываемой программы, пред-
ставленное в литеральной форме. В этом слу-
чае имя после лексемы CALL будет без лите-
ральных кавычек. Косвенный вызов програм-
мы в языке COBOL показан в примере:
01 ALFA PICTURE X(4) VALUE ‘BETA’.
. . .
CALL ALFA USING PAR.
В приведенном примере программа BETA
вызывается через имя программной перемен-
ной ALFA.
Сложнее, когда косвенный вызов программ
организован в динамическом режиме, т.е. зна-
чение переменной ALFA изменяется в процессе
выполнения программы. В этом случае требу-
ется просмотреть цепочку наследования пере-
менной ALFA (см. далее описание алгоритма
отслеживания связей наследования между ло-
гическими переменными). Все элементы це-
почки наследования переменной ALFA заносят-
ся в дерево вызова модулей как имена вызы-
ваемых модулей.
В некоторых языках (например, FORTRAN)
допустимо указание после лексемы CALL не
только имени программы (основная точка вхо-
да в модуль), но и имена дополнительных то-
чек входа. Установить этот факт при анализе
вызывающего модуля (без дополнительного ана-
лиза вызываемого модуля) не представляется
возможным. Поэтому в дереве вызова будут
УСиМ, 2009, № 3 61
наблюдаться указания на все точки входа вы-
зываемых модулей, к которым были обраще-
ния из вызывающих модулей.
Найденные в анализируемом модуле имена
вызываемых программ заносятся в строку мат-
рицы, соответствующей этому модулю.
Перечисленные операции выполняются для
каждого модуля анализируемой системы. Та-
ким способом строится таблица вызываемых
модулей, представляющая дерево вызова мо-
дулей в матричном отображении. Таблица вы-
дается на печать в удобной для аналитика фор-
ме. Кроме того, информация из файла, в кото-
рый парсер заносит таблицу вызываемых мо-
дулей, должна быть загружена в репозиторий.
Целесообразно на основе таблицы вызы-
ваемых модулей сформировать и выдать це-
почки вызываемых модулей системы, т.е. все
ветки дерева вызовов должны быть представ-
лены в виде последовательности вызываемых
модулей с описанием, по возможности, усло-
вий их выполнения. Такое представление по-
следовательностей вызываемых модулей по-
лезно для аналитика при выполнении анализа
программной системы.
Путем сопоставления исходного списка мо-
дулей системы со списком модулей, попавших
в таблицу вызываемых модулей, можно опре-
делить перечень модулей, по тем или иным при-
чинам не участвующих в функционировании
системы. Эти модули, в силу проводившихся
модификаций системы в процессе ее эксплуа-
тации, могут оказаться случайными (лишними)
в системе, т.е. «мёртвым» кодом на внешнемо-
дульном уровне. В этом случае они удаляются
из системы и не подвергаются дальнейшему
анализу и реинжинирингу.
Алгоритм определения межмодульных
связей
Построение межмодульных связей предпо-
лагает связывание между собой всех таблиц пе-
ременных модулей, построенных отдельно для
каждого модуля анализируемой системы.
На этапе синтаксического анализа происхо-
дит распознавание синтаксических конструк-
ций, реализующих прямую или косвенную пе-
редачу данных между модулями через парамет-
ры в операторах вызова программ, через общие
области данных или системные области связи.
Параметры следуют после лексем вызова
программ, распознаваемых на этапе лексичес-
кого анализа. Например, в языке COBOL в опе-
раторе CALL параметры помещаются после
лексемы USING.
Одновременно с распознаванием имен вы-
зываемых модулей выделяются имена переда-
ваемых данных, заносимых в таблицу переда-
ваемых параметров, где в начало строки по-
мещаются имена вызывающей и вызываемой
программ, за которыми следуют имена переда-
ваемых параметров.
Данные, принимаемые вызываемыми моду-
лями от вызывающих модулей помещаются в
общие области данных. На этапе синтаксичес-
кого анализа распознаются синтаксические кон-
струкции, описывающие общие области и их
данные в анализируемом модуле. Для языка
COBOL это LINKAGE SECTION, для языка
FORTRAN – оператор COMMON, для языка
Assembler – команда COM и т.д. Имена данных
из общих областей анализируемого модуля
помещаются в соответствующие модулю стро-
ки таблицы принимаемых аргументов.
Некоторые данные, например, текущая или
системная дата, время, географические коор-
динаты и другие – могут извлекаться програм-
мным модулем из системных областей связи.
Как правило, имена данных из системных об-
ластей связи – зарезервированные или специ-
альные. Например, в языке COBOL это специ-
альные регистры: CURRENT-DATE (текущая да-
та), TIME-OF-DAY (текущее время), COM-REG
(общая область для оператора MOVE). Соответ-
ствующие им лексемы распознаются на этапе
лексического анализа и помещаются в каче-
стве родителя в таблицу имен наследования с
целью выявления в дальнейшем их потомков.
Для пары программных модулей (вызываю-
щего и вызываемого), на основании информа-
ции из таблицы параметров и таблицы аргумен-
тов, ставятся в соответствие между собой пе-
ременные и строятся цепочки наследования
62 УСиМ, 2009, № 3
передаваемых между ними данных, с привяз-
кой к соответствующим им бизнес-терминам,
занесенным в таблицы имен наследования этих
модулей.
Цепочки передаваемых между модулями дан-
ных (исключая внутримодульные цепочки на-
следования) вносят в таблицу межмодульных
связей, которая помещается в репозиторий, до-
ступна для всех аналитиков и служит упорядо-
чению использования бизнес-терминов, относя-
щихся к области межмодульных связей. Струк-
тура таблицы межмодульных связей аналогична
структуре таблицы имен наследования, с той
разницей, что цепочки в таблице имен насле-
дования отражают продвижение бизнес-объек-
тов по переменным внутри программных моду-
лей, а цепочки в таблице межмодульных связей –
продвижение бизнес-объектов между модулями.
При построении цепочек в таблице межмо-
дульных связей может возникнуть несовпаде-
ние имен, соответствующих одному и тому же
бизнес-объекту (несовпадение бизнес-терми-
нов), в вызываемом и вызывающем модулях,
так как они определялись в каждом модуле ав-
тономно. В этом случае в качестве обобщенно-
го имени для всей межмодульной цепочки
(обобщенный бизнес-термин для всей програм-
мной системы) принимается бизнес-термин ро-
дителя цепочки. Все остальные бизнес-терми-
ны цепочки будут выполнять функции алиасов
обобщенного бизнес-термина.
Такой подход позволит обобщить все биз-
нес-термины и построить семантическое (смы-
словое, в понятиях предметной области) дере-
во, что существенно облегчит аналитику по-
нимание логики работы как отдельных про-
грамм, так и программой системы в целом.
Алгоритм отслеживания связей наследо-
вания между переменными в рамках отдель-
ных модулей
На этом шаге анализа выделяются операто-
ры передачи данных между переменными (ана-
лиз наследования переменных).
На этапе синтаксического анализа иденти-
фицируются операции пересылки–присвоения,
характерные для языка программирования ана-
лизируемого модуля. В качестве входных па-
раметров для данного шага синтаксического
анализа необходимо задать все ключевые сло-
ва или синтаксические конструкции, связан-
ные с инициированием операций пересылки–
присвоения данных между переменными. На-
пример, для языка COBOL это лексема MOVE
или лексема = в операторе COMPUTE, а также
оператор ACCEPT. Для языков PL/1, FORTRAN
и других это лексема ’=’.
При распознавании лексем пересылки-при-
своения происходит уточнение характера при-
своения, которые могут иметь следующий вид:
• простое присвоение, когда значение одной
переменной присваивается другой перемен-
ной, является наследуемым;
• присвоение с преобразованием значения
исходной переменной; в этом случае получае-
мое значение является результатом какого-ли-
бо преобразования значения одной или несколь-
ких исходных переменных. Указанная перемен-
ная называется порождаемой, а такой характер
присвоения не является наследуемым.
Наследуемые переменные заносятся в таб-
лицу имен наследования согласно иерархии
(родители → дети → внуки и т.д.). Порождае-
мые переменные заносятся в таблицу имен на-
следования как родители, с целью выявления в
дальнейшем их потомков. В качестве родите-
лей в таблицу имен наследования заносим и
вновь выявленные имена переменных. Таблица
имен наследования строится в виде матрицы,
первая колонка которой – родитель, вторая –
дитя, третья – внук и т.д. В связи с тем, что за-
ранее не известно максимальное количество
поколений потомков, физическая реализация
таблицы имен наследования выполняется в ви-
де списков.
При пересылке данного в несколько других
переменных для каждого принимающего пе-
ременного дублируется вся предыдущая часть
ветки наследования вплоть до родителя. Ана-
логично, если в какую-либо переменную пере-
сылаются данные из разных источников, то
автоматически дублируется часть ветки от
принимающего имени и до последнего потом-
УСиМ, 2009, № 3 63
ка. Поэтому деревья наследования в таблице
имен наследования будут представлены как
множества отдельных ветвей (цепочек) насле-
дования от родителя (корня) и до последнего
потомка на ветке.
По окончании анализа наследования пере-
менные, не имеющие потомков и не являющие-
ся входными или выходными данными, уда-
ляются из таблицы имен наследования. Пото-
му в таблице после выполнения этого этапа
останутся только цепочки наследования пере-
менных модуля, связанные с входными и/или
выходными данными.
Выделяются цепочки наследования, имею-
щие в качестве родителей входные данные, и
цепочки наследования, имеющие в качестве
последнего потомка выходные данные. Цепоч-
ки наследования, не содержащие ни входных,
ни выходных данных, рассматриваются как
цепочки рабочих полей, удаляются из таблицы
имен наследования и не связываются с бизнес-
терминами.
При занесении переменной в цепочку на-
следования, необходимо выполнить проверку
на статус переменной, т.е. установить, что
переменная не является именем составной
структуры, именем переопределения (REDE-
FINES) или именем специального уровня (на-
пример, для языка COBOL это уровень 88,
присваивающий имена отдельным значениям
переменной).
Если переменные, участвующие в операции
пересылки-присвоения, являются именами
структур, то необходимо выделить в соответ-
ствующих декларативных операторах имена са-
мых высоких уровней в структурах и строить
цепочки наследования для каждой переменной
отдельно.
Если переменная, участвующая в операции
пересылки-присвоения, является именем пере-
определения или именем специального уровня,
то определяются через соответствующие декла-
ративные операторы имена переменных, кото-
рые переименовывают обрабатываемые пере-
менные, и именно они заносятся в цепочку на-
следования.
Для облегчения работы аналитика, имена пе-
реопределения заносятся в таблицу алиасов мо-
дуля, в первой строке которой помещается ис-
ходное имя переменной, а далее следуют все
имена, использованные в программе, которые
тем или иным способом переименовывают ис-
ходное имя переменной. Таблица алиасов вы-
дается аналитику вместе с анализируемым мо-
дулем для использования при прослеживании
продвижения бизнес-термина внутри модуля.
Заключение. Цель статьи – обоснование
предлагаемого подхода к реинжинирингу про-
граммных legacy-систем, а также описание ал-
горитмов, относящихся к начальному этапу ре-
инжиниринга и ориентированных на автомат-
изацию построения БП-правил на стадии Preproc-
essing.
Получены следующие результаты:
• разработан механизм фиксирования и от-
слеживания состояния логических переменных
с целью организации последовательности вы-
зова БП. Для этого определены правила и ме-
тоды построения статических и динамических
векторов состояния для текущего отслеживания
условий выполнения БП;
• предложена методика построения матрицы
условий запуска БП, используемая, с одной сто-
роны, как карта контроля при написании БП, а
с другой – как механизм определения момента
активизации БП в процессе их функциониро-
вания;
• определены условия корректного построе-
ния комплекса БП и методика их проверки;
• намечены пути автоматизации реализации
предлагаемого подхода путем разработки средств
автоматизации:
– для просмотра БП с целью автоматического
построения матрицы условий их запуска и век-
торов состояния;
– для автоматического отслеживания кор-
ректности комплекса создаваемых БП в про-
цессе их написания;
– для автоматизации связи с предметной
областью.
• разработаны типовые алгоритмы: построе-
ния дерева вызова модулей legacy-системы,
64 УСиМ, 2009, № 3
определения межмодульных связей, отслежи-
вания связей наследования между переменны-
ми в рамках отдельных модулей.
1. Реализация реинжиниринга программных legacy-
систем / А.В. Анисимов, В.В. Белодед, Н.Д. Паш-
ковец и др. // УСиМ. – 2008. – № 6. – С. 4—48.
2. Tom Debevoise Business Process Management with a
Business Rule Approach. (Business Knowledge Archi-
tects, 2005) ISBN 0-9769048-0-2.
3. Barbara & GOLDBERG, Larry. The Business Rule
Revolution. Happy About. – 2006 October 9. – ISBN
1-60005-013-1.
Поступила 04.01.2009
Тел. для справок: (044) 259-0690, 526-4187 (Киев)
E-mail: ava@unicyb.kiev.ua, vladimir.bilodid@gmail.com,
© В.И. Гриценко, А.В. Анисимов, Н.Д. Пашковец, О.В. Бабак,
2009
<<
/ASCII85EncodePages false
/AllowTransparency false
/AutoPositionEPSFiles true
/AutoRotatePages /None
/Binding /Left
/CalGrayProfile (Dot Gain 20%)
/CalRGBProfile (sRGB IEC61966-2.1)
/CalCMYKProfile (U.S. Web Coated \050SWOP\051 v2)
/sRGBProfile (sRGB IEC61966-2.1)
/CannotEmbedFontPolicy /Error
/CompatibilityLevel 1.4
/CompressObjects /Tags
/CompressPages true
/ConvertImagesToIndexed true
/PassThroughJPEGImages true
/CreateJobTicket false
/DefaultRenderingIntent /Default
/DetectBlends true
/DetectCurves 0.0000
/ColorConversionStrategy /CMYK
/DoThumbnails false
/EmbedAllFonts true
/EmbedOpenType false
/ParseICCProfilesInComments true
/EmbedJobOptions true
/DSCReportingLevel 0
/EmitDSCWarnings false
/EndPage -1
/ImageMemory 1048576
/LockDistillerParams false
/MaxSubsetPct 100
/Optimize true
/OPM 1
/ParseDSCComments true
/ParseDSCCommentsForDocInfo true
/PreserveCopyPage true
/PreserveDICMYKValues true
/PreserveEPSInfo true
/PreserveFlatness true
/PreserveHalftoneInfo false
/PreserveOPIComments true
/PreserveOverprintSettings true
/StartPage 1
/SubsetFonts true
/TransferFunctionInfo /Apply
/UCRandBGInfo /Preserve
/UsePrologue false
/ColorSettingsFile ()
/AlwaysEmbed [ true
]
/NeverEmbed [ true
]
/AntiAliasColorImages false
/CropColorImages true
/ColorImageMinResolution 300
/ColorImageMinResolutionPolicy /OK
/DownsampleColorImages true
/ColorImageDownsampleType /Bicubic
/ColorImageResolution 300
/ColorImageDepth -1
/ColorImageMinDownsampleDepth 1
/ColorImageDownsampleThreshold 1.50000
/EncodeColorImages true
/ColorImageFilter /DCTEncode
/AutoFilterColorImages true
/ColorImageAutoFilterStrategy /JPEG
/ColorACSImageDict <<
/QFactor 0.15
/HSamples [1 1 1 1] /VSamples [1 1 1 1]
>>
/ColorImageDict <<
/QFactor 0.15
/HSamples [1 1 1 1] /VSamples [1 1 1 1]
>>
/JPEG2000ColorACSImageDict <<
/TileWidth 256
/TileHeight 256
/Quality 30
>>
/JPEG2000ColorImageDict <<
/TileWidth 256
/TileHeight 256
/Quality 30
>>
/AntiAliasGrayImages false
/CropGrayImages true
/GrayImageMinResolution 300
/GrayImageMinResolutionPolicy /OK
/DownsampleGrayImages true
/GrayImageDownsampleType /Bicubic
/GrayImageResolution 300
/GrayImageDepth -1
/GrayImageMinDownsampleDepth 2
/GrayImageDownsampleThreshold 1.50000
/EncodeGrayImages true
/GrayImageFilter /DCTEncode
/AutoFilterGrayImages true
/GrayImageAutoFilterStrategy /JPEG
/GrayACSImageDict <<
/QFactor 0.15
/HSamples [1 1 1 1] /VSamples [1 1 1 1]
>>
/GrayImageDict <<
/QFactor 0.15
/HSamples [1 1 1 1] /VSamples [1 1 1 1]
>>
/JPEG2000GrayACSImageDict <<
/TileWidth 256
/TileHeight 256
/Quality 30
>>
/JPEG2000GrayImageDict <<
/TileWidth 256
/TileHeight 256
/Quality 30
>>
/AntiAliasMonoImages false
/CropMonoImages true
/MonoImageMinResolution 1200
/MonoImageMinResolutionPolicy /OK
/DownsampleMonoImages true
/MonoImageDownsampleType /Bicubic
/MonoImageResolution 1200
/MonoImageDepth -1
/MonoImageDownsampleThreshold 1.50000
/EncodeMonoImages true
/MonoImageFilter /CCITTFaxEncode
/MonoImageDict <<
/K -1
>>
/AllowPSXObjects false
/CheckCompliance [
/None
]
/PDFX1aCheck false
/PDFX3Check false
/PDFXCompliantPDFOnly false
/PDFXNoTrimBoxError true
/PDFXTrimBoxToMediaBoxOffset [
0.00000
0.00000
0.00000
0.00000
]
/PDFXSetBleedBoxToMediaBox true
/PDFXBleedBoxToTrimBoxOffset [
0.00000
0.00000
0.00000
0.00000
]
/PDFXOutputIntentProfile ()
/PDFXOutputConditionIdentifier ()
/PDFXOutputCondition ()
/PDFXRegistryName ()
/PDFXTrapped /False
/CreateJDFFile false
/Description <<
/ARA <FEFF06270633062A062E062F0645002006470630064700200627064406250639062F0627062F0627062A002006440625064606340627062100200648062B062706260642002000410064006F00620065002000500044004600200645062A064806270641064206290020064406440637062806270639062900200641064A00200627064406450637062706280639002006300627062A0020062F0631062C0627062A002006270644062C0648062F0629002006270644063906270644064A0629061B0020064A06450643064600200641062A062D00200648062B0627062606420020005000440046002006270644064506460634062306290020062806270633062A062E062F062706450020004100630072006F0062006100740020064800410064006F006200650020005200650061006400650072002006250635062F0627063100200035002E0030002006480627064406250635062F062706310627062A0020062706440623062D062F062B002E0635062F0627063100200035002E0030002006480627064406250635062F062706310627062A0020062706440623062D062F062B002E>
/BGR <FEFF04180437043f043e043b043704320430043904420435002004420435043704380020043d0430044104420440043e0439043a0438002c00200437043000200434043000200441044a0437043404300432043004420435002000410064006f00620065002000500044004600200434043e043a0443043c0435043d04420438002c0020043c0430043a04410438043c0430043b043d043e0020043f044004380433043e04340435043d04380020043704300020043204380441043e043a043e043a0430044704350441044204320435043d0020043f04350447043004420020043704300020043f044004350434043f0435044704300442043d04300020043f043e04340433043e0442043e0432043a0430002e002000200421044a04370434043004340435043d043804420435002000500044004600200434043e043a0443043c0435043d044204380020043c043e0433043004420020043404300020044104350020043e0442043204300440044f0442002004410020004100630072006f00620061007400200438002000410064006f00620065002000520065006100640065007200200035002e00300020043800200441043b0435043404320430044904380020043204350440044104380438002e>
/CHS <FEFF4f7f75288fd94e9b8bbe5b9a521b5efa7684002000410064006f006200650020005000440046002065876863900275284e8e9ad88d2891cf76845370524d53705237300260a853ef4ee54f7f75280020004100630072006f0062006100740020548c002000410064006f00620065002000520065006100640065007200200035002e003000204ee553ca66f49ad87248672c676562535f00521b5efa768400200050004400460020658768633002>
/CHT <FEFF4f7f752890194e9b8a2d7f6e5efa7acb7684002000410064006f006200650020005000440046002065874ef69069752865bc9ad854c18cea76845370524d5370523786557406300260a853ef4ee54f7f75280020004100630072006f0062006100740020548c002000410064006f00620065002000520065006100640065007200200035002e003000204ee553ca66f49ad87248672c4f86958b555f5df25efa7acb76840020005000440046002065874ef63002>
/CZE <FEFF005400610074006f0020006e006100730074006100760065006e00ed00200070006f0075017e0069006a007400650020006b0020007600790074007600e101590065006e00ed00200064006f006b0075006d0065006e0074016f002000410064006f006200650020005000440046002c0020006b00740065007200e90020007300650020006e0065006a006c00e90070006500200068006f006400ed002000700072006f0020006b00760061006c00690074006e00ed0020007400690073006b00200061002000700072006500700072006500730073002e002000200056007900740076006f01590065006e00e900200064006f006b0075006d0065006e007400790020005000440046002000620075006400650020006d006f017e006e00e90020006f007400650076015900ed007400200076002000700072006f006700720061006d0065006300680020004100630072006f00620061007400200061002000410064006f00620065002000520065006100640065007200200035002e0030002000610020006e006f0076011b006a016100ed00630068002e>
/DAN <FEFF004200720075006700200069006e0064007300740069006c006c0069006e006700650072006e0065002000740069006c0020006100740020006f007000720065007400740065002000410064006f006200650020005000440046002d0064006f006b0075006d0065006e007400650072002c0020006400650072002000620065006400730074002000650067006e006500720020007300690067002000740069006c002000700072006500700072006500730073002d007500640073006b007200690076006e0069006e00670020006100660020006800f8006a0020006b00760061006c0069007400650074002e0020004400650020006f007000720065007400740065006400650020005000440046002d0064006f006b0075006d0065006e0074006500720020006b0061006e002000e50062006e00650073002000690020004100630072006f00620061007400200065006c006c006500720020004100630072006f006200610074002000520065006100640065007200200035002e00300020006f00670020006e0079006500720065002e>
/DEU <FEFF00560065007200770065006e00640065006e0020005300690065002000640069006500730065002000450069006e007300740065006c006c0075006e00670065006e0020007a0075006d002000450072007300740065006c006c0065006e00200076006f006e002000410064006f006200650020005000440046002d0044006f006b0075006d0065006e00740065006e002c00200076006f006e002000640065006e0065006e002000530069006500200068006f006300680077006500720074006900670065002000500072006500700072006500730073002d0044007200750063006b0065002000650072007a0065007500670065006e0020006d00f60063006800740065006e002e002000450072007300740065006c006c007400650020005000440046002d0044006f006b0075006d0065006e007400650020006b00f6006e006e0065006e0020006d006900740020004100630072006f00620061007400200075006e0064002000410064006f00620065002000520065006100640065007200200035002e00300020006f0064006500720020006800f600680065007200200067006500f600660066006e00650074002000770065007200640065006e002e>
/ESP <FEFF005500740069006c0069006300650020006500730074006100200063006f006e0066006900670075007200610063006900f3006e0020007000610072006100200063007200650061007200200064006f00630075006d0065006e0074006f00730020005000440046002000640065002000410064006f0062006500200061006400650063007500610064006f00730020007000610072006100200069006d0070007200650073006900f3006e0020007000720065002d0065006400690074006f007200690061006c00200064006500200061006c00740061002000630061006c0069006400610064002e002000530065002000700075006500640065006e00200061006200720069007200200064006f00630075006d0065006e0074006f00730020005000440046002000630072006500610064006f007300200063006f006e0020004100630072006f006200610074002c002000410064006f00620065002000520065006100640065007200200035002e003000200079002000760065007200730069006f006e0065007300200070006f00730074006500720069006f007200650073002e>
/ETI <FEFF004b00610073007500740061006700650020006e0065006900640020007300e4007400740065006900640020006b00760061006c006900740065006500740073006500200074007200fc006b006900650065006c007300650020007000720069006e00740069006d0069007300650020006a0061006f006b007300200073006f00620069006c0069006b0065002000410064006f006200650020005000440046002d0064006f006b0075006d0065006e00740069006400650020006c006f006f006d006900730065006b0073002e00200020004c006f006f0064007500640020005000440046002d0064006f006b0075006d0065006e00740065002000730061006100740065002000610076006100640061002000700072006f006700720061006d006d006900640065006700610020004100630072006f0062006100740020006e0069006e0067002000410064006f00620065002000520065006100640065007200200035002e00300020006a00610020007500750065006d006100740065002000760065007200730069006f006f006e00690064006500670061002e000d000a>
/FRA <FEFF005500740069006c006900730065007a00200063006500730020006f007000740069006f006e00730020006100660069006e00200064006500200063007200e900650072002000640065007300200064006f00630075006d0065006e00740073002000410064006f00620065002000500044004600200070006f0075007200200075006e00650020007100750061006c0069007400e90020006400270069006d007000720065007300730069006f006e00200070007200e9007000720065007300730065002e0020004c0065007300200064006f00630075006d0065006e00740073002000500044004600200063007200e900e90073002000700065007500760065006e0074002000ea0074007200650020006f007500760065007200740073002000640061006e00730020004100630072006f006200610074002c002000610069006e00730069002000710075002700410064006f00620065002000520065006100640065007200200035002e0030002000650074002000760065007200730069006f006e007300200075006c007400e90072006900650075007200650073002e>
/GRE <FEFF03a703c103b703c303b903bc03bf03c003bf03b903ae03c303c403b5002003b103c503c403ad03c2002003c403b903c2002003c103c503b803bc03af03c303b503b903c2002003b303b903b1002003bd03b1002003b403b703bc03b903bf03c503c103b303ae03c303b503c403b5002003ad03b303b303c103b103c603b1002000410064006f006200650020005000440046002003c003bf03c5002003b503af03bd03b103b9002003ba03b103c42019002003b503be03bf03c703ae03bd002003ba03b103c403ac03bb03bb03b703bb03b1002003b303b903b1002003c003c103bf002d03b503ba03c403c503c003c903c403b903ba03ad03c2002003b503c103b303b103c303af03b503c2002003c503c803b703bb03ae03c2002003c003bf03b903cc03c403b703c403b103c2002e0020002003a403b10020005000440046002003ad03b303b303c103b103c603b1002003c003bf03c5002003ad03c703b503c403b5002003b403b703bc03b903bf03c503c103b303ae03c303b503b9002003bc03c003bf03c103bf03cd03bd002003bd03b1002003b103bd03bf03b903c703c403bf03cd03bd002003bc03b5002003c403bf0020004100630072006f006200610074002c002003c403bf002000410064006f00620065002000520065006100640065007200200035002e0030002003ba03b103b9002003bc03b503c403b103b303b503bd03ad03c303c403b503c103b503c2002003b503ba03b403cc03c303b503b903c2002e>
/HEB <FEFF05D405E905EA05DE05E905D5002005D105D405D205D305E805D505EA002005D005DC05D4002005DB05D305D9002005DC05D905E605D505E8002005DE05E105DE05DB05D9002000410064006F006200650020005000440046002005D405DE05D505EA05D005DE05D905DD002005DC05D405D305E405E105EA002005E705D305DD002D05D305E405D505E1002005D005D905DB05D505EA05D905EA002E002005DE05E105DE05DB05D90020005000440046002005E905E005D505E605E805D5002005E005D905EA05E005D905DD002005DC05E405EA05D905D705D4002005D105D005DE05E605E205D505EA0020004100630072006F006200610074002005D5002D00410064006F00620065002000520065006100640065007200200035002E0030002005D505D205E805E105D005D505EA002005DE05EA05E705D305DE05D505EA002005D905D505EA05E8002E05D005DE05D905DD002005DC002D005000440046002F0058002D0033002C002005E205D905D905E005D5002005D105DE05D305E805D905DA002005DC05DE05E905EA05DE05E9002005E905DC0020004100630072006F006200610074002E002005DE05E105DE05DB05D90020005000440046002005E905E005D505E605E805D5002005E005D905EA05E005D905DD002005DC05E405EA05D905D705D4002005D105D005DE05E605E205D505EA0020004100630072006F006200610074002005D5002D00410064006F00620065002000520065006100640065007200200035002E0030002005D505D205E805E105D005D505EA002005DE05EA05E705D305DE05D505EA002005D905D505EA05E8002E>
/HRV (Za stvaranje Adobe PDF dokumenata najpogodnijih za visokokvalitetni ispis prije tiskanja koristite ove postavke. Stvoreni PDF dokumenti mogu se otvoriti Acrobat i Adobe Reader 5.0 i kasnijim verzijama.)
/HUN <FEFF004b0069007600e1006c00f30020006d0069006e0151007300e9006701710020006e0079006f006d00640061006900200065006c0151006b00e90073007a00ed007401510020006e0079006f006d00740061007400e100730068006f007a0020006c006500670069006e006b00e1006200620020006d0065006700660065006c0065006c0151002000410064006f00620065002000500044004600200064006f006b0075006d0065006e00740075006d006f006b0061007400200065007a0065006b006b0065006c0020006100200062006500e1006c006c00ed007400e10073006f006b006b0061006c0020006b00e90073007a00ed0074006800650074002e0020002000410020006c00e90074007200650068006f007a006f00740074002000500044004600200064006f006b0075006d0065006e00740075006d006f006b00200061007a0020004100630072006f006200610074002000e9007300200061007a002000410064006f00620065002000520065006100640065007200200035002e0030002c0020007600610067007900200061007a002000610074007400f3006c0020006b00e9007301510062006200690020007600650072007a006900f3006b006b0061006c0020006e00790069007400680061007400f3006b0020006d00650067002e>
/ITA <FEFF005500740069006c0069007a007a006100720065002000710075006500730074006500200069006d0070006f007300740061007a0069006f006e00690020007000650072002000630072006500610072006500200064006f00630075006d0065006e00740069002000410064006f00620065002000500044004600200070006900f900200061006400610074007400690020006100200075006e00610020007000720065007300740061006d0070006100200064006900200061006c007400610020007100750061006c0069007400e0002e0020004900200064006f00630075006d0065006e007400690020005000440046002000630072006500610074006900200070006f00730073006f006e006f0020006500730073006500720065002000610070006500720074006900200063006f006e0020004100630072006f00620061007400200065002000410064006f00620065002000520065006100640065007200200035002e003000200065002000760065007200730069006f006e006900200073007500630063006500730073006900760065002e>
/JPN <FEFF9ad854c18cea306a30d730ea30d730ec30b951fa529b7528002000410064006f0062006500200050004400460020658766f8306e4f5c6210306b4f7f75283057307e305930023053306e8a2d5b9a30674f5c62103055308c305f0020005000440046002030d530a130a430eb306f3001004100630072006f0062006100740020304a30883073002000410064006f00620065002000520065006100640065007200200035002e003000204ee5964d3067958b304f30533068304c3067304d307e305930023053306e8a2d5b9a306b306f30d530a930f330c8306e57cb30818fbc307f304c5fc59808306730593002>
/KOR <FEFFc7740020c124c815c7440020c0acc6a9d558c5ec0020ace0d488c9c80020c2dcd5d80020c778c1c4c5d00020ac00c7a50020c801d569d55c002000410064006f0062006500200050004400460020bb38c11cb97c0020c791c131d569b2c8b2e4002e0020c774b807ac8c0020c791c131b41c00200050004400460020bb38c11cb2940020004100630072006f0062006100740020bc0f002000410064006f00620065002000520065006100640065007200200035002e00300020c774c0c1c5d0c11c0020c5f40020c2180020c788c2b5b2c8b2e4002e>
/LTH <FEFF004e006100750064006f006b0069007400650020016100690075006f007300200070006100720061006d006500740072007500730020006e006f0072011700640061006d00690020006b0075007200740069002000410064006f00620065002000500044004600200064006f006b0075006d0065006e007400750073002c0020006b00750072006900650020006c0061006200690061007500730069006100690020007000720069007400610069006b007900740069002000610075006b01610074006f00730020006b006f006b007900620117007300200070006100720065006e006700740069006e00690061006d00200073007000610075007300640069006e0069006d00750069002e0020002000530075006b0075007200740069002000500044004600200064006f006b0075006d0065006e007400610069002000670061006c006900200062016b007400690020006100740069006400610072006f006d00690020004100630072006f006200610074002000690072002000410064006f00620065002000520065006100640065007200200035002e0030002000610072002000760117006c00650073006e0117006d00690073002000760065007200730069006a006f006d00690073002e>
/LVI <FEFF0049007a006d0061006e0074006f006a00690065007400200161006f00730020006900650073007400610074012b006a0075006d00750073002c0020006c0061006900200076006500690064006f00740075002000410064006f00620065002000500044004600200064006f006b0075006d0065006e007400750073002c0020006b006100730020006900720020012b00700061016100690020007000690065006d01130072006f00740069002000610075006700730074006100730020006b00760061006c0069007401010074006500730020007000690072006d007300690065007300700069006501610061006e006100730020006400720075006b00610069002e00200049007a0076006500690064006f006a006900650074002000500044004600200064006f006b0075006d0065006e007400750073002c0020006b006f002000760061007200200061007400760113007200740020006100720020004100630072006f00620061007400200075006e002000410064006f00620065002000520065006100640065007200200035002e0030002c0020006b0101002000610072012b00200074006f0020006a00610075006e0101006b0101006d002000760065007200730069006a0101006d002e>
/NLD (Gebruik deze instellingen om Adobe PDF-documenten te maken die zijn geoptimaliseerd voor prepress-afdrukken van hoge kwaliteit. De gemaakte PDF-documenten kunnen worden geopend met Acrobat en Adobe Reader 5.0 en hoger.)
/NOR <FEFF004200720075006b00200064006900730073006500200069006e006e007300740069006c006c0069006e00670065006e0065002000740069006c002000e50020006f0070007000720065007400740065002000410064006f006200650020005000440046002d0064006f006b0075006d0065006e00740065007200200073006f006d00200065007200200062006500730074002000650067006e0065007400200066006f00720020006600f80072007400720079006b006b0073007500740073006b00720069006600740020006100760020006800f800790020006b00760061006c0069007400650074002e0020005000440046002d0064006f006b0075006d0065006e00740065006e00650020006b0061006e002000e50070006e00650073002000690020004100630072006f00620061007400200065006c006c00650072002000410064006f00620065002000520065006100640065007200200035002e003000200065006c006c00650072002000730065006e006500720065002e>
/POL <FEFF0055007300740061007700690065006e0069006100200064006f002000740077006f0072007a0065006e0069006100200064006f006b0075006d0065006e007400f300770020005000440046002000700072007a0065007a006e00610063007a006f006e00790063006800200064006f002000770079006400720075006b00f30077002000770020007700790073006f006b00690065006a0020006a0061006b006f015b00630069002e002000200044006f006b0075006d0065006e0074007900200050004400460020006d006f017c006e00610020006f007400770069006500720061010700200077002000700072006f006700720061006d006900650020004100630072006f00620061007400200069002000410064006f00620065002000520065006100640065007200200035002e0030002000690020006e006f00770073007a0079006d002e>
/PTB <FEFF005500740069006c0069007a006500200065007300730061007300200063006f006e00660069006700750072006100e700f50065007300200064006500200066006f0072006d00610020006100200063007200690061007200200064006f00630075006d0065006e0074006f0073002000410064006f0062006500200050004400460020006d00610069007300200061006400650071007500610064006f00730020007000610072006100200070007200e9002d0069006d0070007200650073007300f50065007300200064006500200061006c007400610020007100750061006c00690064006100640065002e0020004f007300200064006f00630075006d0065006e0074006f00730020005000440046002000630072006900610064006f007300200070006f00640065006d0020007300650072002000610062006500720074006f007300200063006f006d0020006f0020004100630072006f006200610074002000650020006f002000410064006f00620065002000520065006100640065007200200035002e0030002000650020007600650072007300f50065007300200070006f00730074006500720069006f007200650073002e>
/RUM <FEFF005500740069006c0069007a00610163006900200061006300650073007400650020007300650074010300720069002000700065006e007400720075002000610020006300720065006100200064006f00630075006d0065006e00740065002000410064006f006200650020005000440046002000610064006500630076006100740065002000700065006e0074007200750020007400690070010300720069007200650061002000700072006500700072006500730073002000640065002000630061006c006900740061007400650020007300750070006500720069006f006100720103002e002000200044006f00630075006d0065006e00740065006c00650020005000440046002000630072006500610074006500200070006f00740020006600690020006400650073006300680069007300650020006300750020004100630072006f006200610074002c002000410064006f00620065002000520065006100640065007200200035002e00300020015f00690020007600650072007300690075006e0069006c006500200075006c0074006500720069006f006100720065002e>
/RUS <FEFF04180441043f043e043b044c04370443043904420435002004340430043d043d044b04350020043d0430044104420440043e0439043a043800200434043b044f00200441043e043704340430043d0438044f00200434043e043a0443043c0435043d0442043e0432002000410064006f006200650020005000440046002c0020043c0430043a04410438043c0430043b044c043d043e0020043f043e04340445043e0434044f04490438044500200434043b044f00200432044b0441043e043a043e043a0430044704350441044204320435043d043d043e0433043e00200434043e043f0435044704300442043d043e0433043e00200432044b0432043e04340430002e002000200421043e043704340430043d043d044b04350020005000440046002d0434043e043a0443043c0435043d0442044b0020043c043e0436043d043e0020043e0442043a0440044b043204300442044c002004410020043f043e043c043e0449044c044e0020004100630072006f00620061007400200438002000410064006f00620065002000520065006100640065007200200035002e00300020043800200431043e043b043504350020043f043e04370434043d043804450020043204350440044104380439002e>
/SKY <FEFF0054006900650074006f0020006e006100730074006100760065006e0069006100200070006f0075017e0069007400650020006e00610020007600790074007600e100720061006e0069006500200064006f006b0075006d0065006e0074006f0076002000410064006f006200650020005000440046002c0020006b0074006f007200e90020007300610020006e0061006a006c0065007001610069006500200068006f0064006900610020006e00610020006b00760061006c00690074006e00fa00200074006c0061010d00200061002000700072006500700072006500730073002e00200056007900740076006f00720065006e00e900200064006f006b0075006d0065006e007400790020005000440046002000620075006400650020006d006f017e006e00e90020006f00740076006f00720069016500200076002000700072006f006700720061006d006f006300680020004100630072006f00620061007400200061002000410064006f00620065002000520065006100640065007200200035002e0030002000610020006e006f0076016100ed00630068002e>
/SLV <FEFF005400650020006e006100730074006100760069007400760065002000750070006f0072006100620069007400650020007a00610020007500730074007600610072006a0061006e006a006500200064006f006b0075006d0065006e0074006f0076002000410064006f006200650020005000440046002c0020006b006900200073006f0020006e0061006a007000720069006d00650072006e0065006a016100690020007a00610020006b0061006b006f0076006f00730074006e006f0020007400690073006b0061006e006a00650020007300200070007200690070007200610076006f0020006e00610020007400690073006b002e00200020005500730074007600610072006a0065006e006500200064006f006b0075006d0065006e0074006500200050004400460020006a00650020006d006f0067006f010d00650020006f0064007000720065007400690020007a0020004100630072006f00620061007400200069006e002000410064006f00620065002000520065006100640065007200200035002e003000200069006e0020006e006f00760065006a01610069006d002e>
/SUO <FEFF004b00e40079007400e40020006e00e40069007400e4002000610073006500740075006b007300690061002c0020006b0075006e0020006c0075006f00740020006c00e400680069006e006e00e4002000760061006100740069007600610061006e0020007000610069006e006100740075006b00730065006e002000760061006c006d0069007300740065006c00750074007900f6006800f6006e00200073006f00700069007600690061002000410064006f0062006500200050004400460020002d0064006f006b0075006d0065006e007400740065006a0061002e0020004c0075006f0064007500740020005000440046002d0064006f006b0075006d0065006e00740069007400200076006f0069006400610061006e0020006100760061007400610020004100630072006f0062006100740069006c006c00610020006a0061002000410064006f00620065002000520065006100640065007200200035002e0030003a006c006c00610020006a006100200075007500640065006d006d0069006c006c0061002e>
/SVE <FEFF0041006e007600e4006e00640020006400650020006800e4007200200069006e0073007400e4006c006c006e0069006e006700610072006e00610020006f006d002000640075002000760069006c006c00200073006b006100700061002000410064006f006200650020005000440046002d0064006f006b0075006d0065006e007400200073006f006d002000e400720020006c00e4006d0070006c0069006700610020006600f60072002000700072006500700072006500730073002d007500740073006b00720069006600740020006d006500640020006800f600670020006b00760061006c0069007400650074002e002000200053006b006100700061006400650020005000440046002d0064006f006b0075006d0065006e00740020006b0061006e002000f600700070006e00610073002000690020004100630072006f0062006100740020006f00630068002000410064006f00620065002000520065006100640065007200200035002e00300020006f00630068002000730065006e006100720065002e>
/TUR <FEFF005900fc006b00730065006b0020006b0061006c006900740065006c0069002000f6006e002000790061007a006401310072006d00610020006200610073006b013100730131006e006100200065006e0020006900790069002000750079006100620069006c006500630065006b002000410064006f006200650020005000440046002000620065006c00670065006c0065007200690020006f006c0075015f007400750072006d0061006b0020006900e70069006e00200062007500200061007900610072006c0061007201310020006b0075006c006c0061006e0131006e002e00200020004f006c0075015f0074007500720075006c0061006e0020005000440046002000620065006c00670065006c0065007200690020004100630072006f006200610074002000760065002000410064006f00620065002000520065006100640065007200200035002e003000200076006500200073006f006e0072006100730131006e00640061006b00690020007300fc007200fc006d006c00650072006c00650020006100e70131006c006100620069006c00690072002e>
/UKR <FEFF04120438043a043e0440043804410442043e043204430439044204350020044604560020043f043004400430043c043504420440043800200434043b044f0020044104420432043e04400435043d043d044f00200434043e043a0443043c0435043d044204560432002000410064006f006200650020005000440046002c0020044f043a04560020043d04300439043a04400430044904350020043f045604340445043e0434044f0442044c00200434043b044f0020043204380441043e043a043e044f043a04560441043d043e0433043e0020043f0435044004350434043404400443043a043e0432043e0433043e0020043404400443043a0443002e00200020042104420432043e04400435043d045600200434043e043a0443043c0435043d0442043800200050004400460020043c043e0436043d04300020043204560434043a0440043804420438002004430020004100630072006f006200610074002004420430002000410064006f00620065002000520065006100640065007200200035002e0030002004300431043e0020043f04560437043d04560448043e04570020043204350440044104560457002e>
/ENU (Use these settings to create Adobe PDF documents best suited for high-quality prepress printing. Created PDF documents can be opened with Acrobat and Adobe Reader 5.0 and later.)
>>
/Namespace [
(Adobe)
(Common)
(1.0)
]
/OtherNamespaces [
<<
/AsReaderSpreads false
/CropImagesToFrames true
/ErrorControl /WarnAndContinue
/FlattenerIgnoreSpreadOverrides false
/IncludeGuidesGrids false
/IncludeNonPrinting false
/IncludeSlug false
/Namespace [
(Adobe)
(InDesign)
(4.0)
]
/OmitPlacedBitmaps false
/OmitPlacedEPS false
/OmitPlacedPDF false
/SimulateOverprint /Legacy
>>
<<
/AddBleedMarks false
/AddColorBars false
/AddCropMarks false
/AddPageInfo false
/AddRegMarks false
/ConvertColors /ConvertToCMYK
/DestinationProfileName ()
/DestinationProfileSelector /DocumentCMYK
/Downsample16BitImages true
/FlattenerPreset <<
/PresetSelector /MediumResolution
>>
/FormElements false
/GenerateStructure false
/IncludeBookmarks false
/IncludeHyperlinks false
/IncludeInteractive false
/IncludeLayers false
/IncludeProfiles false
/MultimediaHandling /UseObjectSettings
/Namespace [
(Adobe)
(CreativeSuite)
(2.0)
]
/PDFXOutputIntentProfileSelector /DocumentCMYK
/PreserveEditing true
/UntaggedCMYKHandling /LeaveUntagged
/UntaggedRGBHandling /UseDocumentProfile
/UseDocumentBleed false
>>
]
>> setdistillerparams
<<
/HWResolution [2400 2400]
/PageSize [612.000 792.000]
>> setpagedevice
|
| id | nasplib_isofts_kiev_ua-123456789-82733 |
| institution | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| issn | 0130-5395 |
| language | Russian |
| last_indexed | 2025-11-28T21:37:07Z |
| publishDate | 2009 |
| publisher | Міжнародний науково-навчальний центр інформаційних технологій і систем НАН та МОН України |
| record_format | dspace |
| spelling | Гриценко, В.И. Анисимов, А.В. Пашковец, Н.Д. Бабак, О.В. 2015-06-06T13:11:03Z 2015-06-06T13:11:03Z 2009 Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур / В.И. Гриценко, А.В. Анисимов, Н.Д. Пашковец, О.В. Бабак // Управляющие системы и машины. — 2009. — № 3. — С. 56-64. — Бібліогр.: 3 назв. — рос. 0130-5395 https://nasplib.isofts.kiev.ua/handle/123456789/82733 681.3.06 Предлагаемая статья представляет собой логическое продолжение материала, изложенного в статье «Реализация реинжиниринга программных legacy-систем». В данной статье изложено обоснование подхода к реинжинирингу программных legacy-систем и определяются условия корректного построения комплекса бизнес-правил, а также описаны алгоритмы построения и методика их проверки. The article is a logic continuation of the material stated in the article «Realization of reengineering of program legacy-systems». In the present article the substantiation of the approach to reengineering of the program legacy-systems is stated and the conditions of the correct construction of a complex of business-rules are defined, as well as the algorithms of construction and a technique of their check are described. Пропонована стаття є логічним продовженням матеріалу, викладеного в статті «Реализация реинжиниринга программных legacy-систем». В даній статті подано обґрунтування запропонованого підходу до реінжинірингу програмних legacy-систем і визначаються умови коректної побудови комплексу бізнес-правил, а також описано алгоритми побудови і методика їх перевірки. ru Міжнародний науково-навчальний центр інформаційних технологій і систем НАН та МОН України Управляющие системы и машины Программная инженерия и программные средства Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур Article published earlier |
| spellingShingle | Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур Гриценко, В.И. Анисимов, А.В. Пашковец, Н.Д. Бабак, О.В. Программная инженерия и программные средства |
| title | Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур |
| title_full | Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур |
| title_fullStr | Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур |
| title_full_unstemmed | Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур |
| title_short | Автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур |
| title_sort | автоматизация построения бизнес-правил в процессе реинжиниринга программных legacy-систем на этапе анализа их функциональных структур |
| topic | Программная инженерия и программные средства |
| topic_facet | Программная инженерия и программные средства |
| url | https://nasplib.isofts.kiev.ua/handle/123456789/82733 |
| work_keys_str_mv | AT gricenkovi avtomatizaciâpostroeniâbiznespravilvprocessereinžiniringaprogrammnyhlegacysistemnaétapeanalizaihfunkcionalʹnyhstruktur AT anisimovav avtomatizaciâpostroeniâbiznespravilvprocessereinžiniringaprogrammnyhlegacysistemnaétapeanalizaihfunkcionalʹnyhstruktur AT paškovecnd avtomatizaciâpostroeniâbiznespravilvprocessereinžiniringaprogrammnyhlegacysistemnaétapeanalizaihfunkcionalʹnyhstruktur AT babakov avtomatizaciâpostroeniâbiznespravilvprocessereinžiniringaprogrammnyhlegacysistemnaétapeanalizaihfunkcionalʹnyhstruktur |