Автоматизация построения бизнес-правил в процессе реинжиниринга программных 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