автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Методы извлечения бизнес-логики на основе семантических свойств программ

кандидата физико-математических наук
Тарабухина, Надежда Константиновна
город
Новосибирск
год
2010
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Методы извлечения бизнес-логики на основе семантических свойств программ»

Автореферат диссертации по теме "Методы извлечения бизнес-логики на основе семантических свойств программ"

Российская Академия Наук Сибирское Отделение Институт систем информатики им. А. П. Ершова

УДК 004.414, 004.415, 004.416 На правах рукописи

гчТХо

004603803

ТАРАБУХИНА Надежда Константиновна

МЕТОДЫ ИЗВЛЕЧЕНИЯ БИЗНЕС-ЛОГИКИ НА ОСНОВЕ СЕМАНТИЧЕСКИХ СВОЙСТВ ПРОГРАММ

Специальность 05.13.11 -Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата физико-математических наук

1 0 ИЮН 2010

Новосибирск 2010

004603803

Работа выполнена в Учреждении Российской академии наук Институте систем информатики им. А.П. Ершова СО РАН

Научный руководитель: Бульонков Михаил Алексеевич,

кандидат физико-математических наук

Официальные оппоненты: Терехов Андрей Николаевич,

доктор физико-математических наук

Скопин Игорь Николаевич, кандидат физико-математических наук

Ведущая организация: Санкт-Петербургский государственный

политехнический университет

Защита состоится 16 июня 2010 г. в 14 ч. 30 мин. на заседании диссертационного совета ДМООЗ .032.01 при Институте систем информатики им. А. П. Ершова Сибирского отделения РАН по адресу:

630090, г. Новосибирск, пр. Акад. Лаврентьева, 6.

С диссертацией можно ознакомиться в читальном зале библиотеки ИСИ СО РАН (г. Новосибирск, пр. Акад. Лаврентьева, 6)

Автореферат разослан мая 2010 г. Ученый секретарь

диссертационного совета ДМООЗ.032.01,

к.ф.-м.н. ^^ Мурзин Ф.А.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность проблемы

В современном обществе компьютеры используются практически во всех областях человеческой деятельности и компьютерные программы составляют важную часть бизнес-процессов предприятий и организаций. Подобные программы создавались в течение не одного десятка лет и на сегодняшнем этапе требуют постоянной поддержки, модернизации и адаптации к меняющимся условиям их применения. Ситуация осложняется тем, что существенная часть этих приложений разработана с использованием устаревших языков программирования COBOL, PL/1, Natural и других, мало употребляемых современными программистами. Часто такие программы не имеют документации вообще или документация не соответствует коду, поскольку она уже не отражает многочисленных изменений, произведенных за годы эксплуатации. Кроме того, исходный код рассматриваемых приложений может оказаться частично утраченным, что затрудняет компиляцию и отладку.

Также нельзя не отметить, что для любого изменения существующих бизнес-приложений необходимо понимание предметной области их применения, которым программисты в большинстве случаев не владеют. Поэтому важно предоставить системным аналитикам средство работы с бизнес-логикой приложений, требующее от пользователя лишь минимальных навыков программирования. Полученные с помощью такого средства бизнес-правила имеют самостоятельную ценность и являются универсальным методом коммуникации между программистами и аналитиками. В дальнейшем бизнес-правила могут использоваться для корректировки работы имеющейся программы, создания спецификаций новых приложений или документирования кода.

Как показывает практика, многие бизнес-приложения не соответствуют современному уровню развития информационных технологий, поскольку большинство из них было создано до появления персональных компьютеров, сети Интернет и графического интерфейса пользователя. Эти приложения функционируют на устаревшей технике, под управлением архаичных операционных систем и не используют

современные средства хранения и передачи данных. Подобные бизнес-приложения считаются устаревшими или унаследованными (legacy) и, безусловно, нуждаются в модернизации. Возможны различные методы их модернизации, в том числе и с применением тагах элементов реинжиниринга (или «обратного проектирования»), как автоматическое извлечение бизнес-логики и автоматический перевод кода приложения на другие языки программирования. Рассмотрим кратко некоторые из этих методов и отметим необходимость использования бизнес-правил для успешного их применения.

Метод разработки нового приложения для полной замены существующего является одним из самых дорогостоящих методов модернизации, требующим значительного времени на проектирование, разработку, тестирование и внедрение нового приложения. Предварительное извлечение бизнес-логики исходного приложения в виде бизнес-правил может быть полезно на всех этапах модернизации: в качестве спецификаций при проектировании и разработке и в качестве тестовых сценариев (use cases) при тестировании. Важно, что соответствие новой системы бизнес-правилам, извлеченным из старой системы, обеспечивает корректность модернизации.

Метод автоматического перевода устаревшего бизнес-приложения на новые языки программирования и новые платформы является более привлекательным. К преимуществам использования этого метода относится быстрота и относительно низкая стоимость проведения модернизации. Однако необходимо отметить, что полная автоматизация для реально используемых бизнес-приложений не всегда возможна и структура автоматически созданного кода не всегда является оптимальной. Данный метод может обеспечить синтаксически корректный перевод с одного языка на другой, но это, как правило, не приводит к улучшению структуры программы и не позволяет выделить действительно интересные фрагменты (бизнес-правила) из устаревшего кода.

Метод извлечения знаний предполагает использование средств извлечения (в том числе и автоматического) и анализа бизнес-правил с последующей реализацией (в том числе и автоматической) полученных правил в новом приложении на новых языках и новых платформах. Этот

метод обеспечивает высокое качество модернизации при высокой скорости проведения работы и относительно низкой ее стоимости.

При использовании любого метода модернизации детали технической реализации устаревших приложений обычно не представляют особой ценности при попытке создания современных аналогов этих приложений. В самом деле, для современных графических приложений, работающих в сети Интернет, совершенно неважно, как именно были реализованы детали пользовательского интерфейса на алфавитно-цифровом дисплее в оригинальной программе или какие средства использовались для обеспечения совместной работы пользователей. Наибольшую ценность представляют используемые в существующих приложениях бизнес-правила и алгоритмы, поскольку именно они определяют, что и как делает приложение.

На сегодняшний день объем существующих бизнес-приложений, нуждающихся в полной замене или дальнейшей модернизации, настолько велик, что актуальность автоматического извлечения бизнес-логики программ не вызывает сомнений.

Цель работы

Цель работы заключается в исследовании методов автоматического построения бизнес-правил на основе семантических свойств программ. Основные задачи в рамках достижения этой цели включают:

• Разработку метода восстановления вычислений заданной программной переменной на основе графа информационных зависимостей программы.

• Разработку метода валидации экранных портов для построения бизнес-правил из всех проверок корректности значений, вводимых пользователем и попадающих в программу через операторы обработки экранных форм -экранные порты.

• Построение вспомогательного алгоритма для валидации сегментов бизнес-правил, позволяющего проверять актуальность правил после редактирования программного кода.

• Реализацию всех разработанных алгоритмов в рамках программного средства анализа бизнес-логики старых приложений Business Rule Manager.

Методы исследования

Для решения поставленной задачи нами использовались различные алгоритмы анализа графов, алгоритмы поиска по шаблону. Для обеспечения многопользовательского режима работы применялась оптимистическая стратегия. Кроме того, использовались результаты работы синтаксических анализаторов языков COBOL, PL/1 и др. Входными данными для автоматического извлечения бизнес-правил служили результаты анализа влияния (impact analysis), а именно специальный информационный граф, построенный путем анализа потоков данных. В процессе реализации разработанных алгоритмов использовались методы объектно-ориентированного программирования.

Научная новизна

Исследования в области бизнес-логики занимают важное место в современной информатике. В данной работе исследована возможность автоматического восстановления бизнес-логики на основании анализа семантических свойств программ, выявляемых по исходному коду. В работе определена оригинальная модель представления бизнес-правил, сформулированы основные задачи восстановления бизнес-логики, представлены алгоритмы, которые могут быть не только использованы для старых приложений на языках COBOL, PL/1 и др., но и преобразованы для анализа более современных приложений.

Автоматически построенные бизнес-правила могут быть использованы, в частности, для анализа, документирования, сопровождения и реинжиниринга существующих приложений, а также для проектирования на их основе новых приложений.

Практическая ценность

Практическим результатом работы явилось создание средства Business Rule Manager как одной из важнейших подсистем системы Modernization Workbench анализа старых приложений, которая в настоящее время успешно применяется многими компаниями Европы,

Азии и Америки для выполнения работ в области реинжиниринга. Описанные в работе методы извлечения бизнес-логики широко используются при анализе и модернизации приложений в области банковской деятельности, страхования, снабжения и управления.

Апробация работы

Результаты работы были представлены на конференциях-конкурсах «Технологии Microsoft в теории и практике программирования», проходивших в Новосибирске в 2006 и 2007 годах, на XLV Международной научной студенческой конференции «Студент и научно-технический прогресс» в 2007 году, на VIII Всероссийской конференции молодых ученых по математическому моделированию и информационным технологиям, проходившей в Институте вычислительных технологий СО РАН в 2007 году, на рабочем семинаре «Наукоемкое программное обеспесение» в рамках седьмой международной конференция памяти академика А. П. Ершова «Перспективы систем информатики» (PSI'09) в 2009 году, а также обсуждались в ряде встреч с российскими и зарубежными специалистами в области реинжиниринга.

Автором опубликовано 9 печатных работ, из них по теме диссертации - 7 работ.

Структура и объем работы

Диссертационная работа состоит из введения, четырёх глав, заключения и списка литературы. Объем диссертации — 123 стр. Список литературы содержит 40 наименований. Работа включает 4 таблицы и 56 иллюстраций, в том числе полученных с использованием разработанного программного обеспечения.

СОДЕРЖАНИЕ РАБОТЫ

Во введении описаны основные проблемы реинжиниринга, перечислены возможные методы их решения, обоснована актуальность задачи извлечения бизнес-логики программ на основе анализа исходного кода, приведена структура диссертации.

В первой главе проводится знакомство с бизнес-логикой программ, обсуждаются вопросы стандартизации, представлены

различные модели представления бизнес-правил (в частности, предложена модель представления бизнес-правил, ориентированная на работу с компьютерными программами), сформулированы основные подходы в области автоматизации работы с бизнес-правилами, приведен обзор существующих программных средств.

В частности, в разделе 1.1 приводится определение бизнес-правила, как правила, согласно которому работает некоторая бизнес-система. В дальнейшем это определение уточняется и детализируется применительно к программным системам. Бизнес-логика определяется как совокупность всех бизнес-правил системы. Попутно обсуждаются история исследований бизнес-правил и стандарты их представления. Среди множества моделей представления бизнес-правил, созданных за последние двадцать лет, рассматриваются модель, предлагаемая в стандарте SBVR (Semantics of Business Vocabulary and Business Rules), и модель, используемая в разработанном нами программном средстве Business Rule Manager, описанном в данной работе. Для удобства первая модель названа SBVR-моделью, а вторая - BRM-моделью.

Необходимо отметить, что, несмотря на определенную схожесть представленных моделей бизнес-правил, между ними есть существенные различия. С нашей точки зрения, основными критериями выбора той или иной модели являются адекватность представления и удобство использования. BRM-модель была успешно использована для построения конкретной системы работы с бизнес-правилами и тем самым доказала свою эффективность.

В разделе 1.2 рассматриваются две задачи: 1) построение аналитиком набора бизнес-правил и их дальнейшее использование в разработке приложения и 2) восстановление бизнес-логики программы на основе ее кода. Первая задача близка к синтезу программ на основе спецификации. Вторая задача может возникать в разных контекстах: для документирования и сопровождения существующего приложения, либо для полной переработки приложения, в частности, для переноса на другую платформу.

Здесь же дается обзор имеющихся программных средств, автоматизирующих работу с бизнес-логикой программ, с классификацией по типу решаемой ими задачи и кратким описанием используемых ими

методов. В обзоре представлены продукты компаний: IBM, Bizrules, Business Rule Solution, XpertRule, SoftwareMining, blackboxIT, Databorough, Trinity Millennium Group, iLog и American Cybernetic Corporation.

Вторая глава содержит постановку задачи и рассмотрение методов извлечения (восстановления) бизнес-логики программ. Существующие методы разделены на два класса: слабую и сильную автоматизацию.

Раздел 2.1 посвящен собственно постановке задачи. Поскольку извлечение бизнес-логики - это несколько неточная формулировка, конкретизировать ее можно различными способами. В данном разделе рассмотрены различные варианты конкретизации и указаны те, решение которых предлагается в нашей работе.

Раздел 2.2 рассматривает два класса методов восстановления бизнес-логики программ. Каждый класс рассмотрен в соответствующем подразделе.

В работе предложены собственные методы как слабой, так и сильной автоматизации, а так же рассмотрены методы, реализованные в других программных средствах.

Методы слабой автоматизации включают, например, предоставление интерфейса для создания бизнес-правил бизнес-аналитиком. Любая система управления бизнес-правилами имеет такой интерфейс. В инструменте Business Rule Manager он также реализован. Помимо этого, в качестве метода слабой автоматизации мы предлагаем групповое создание бизнес-правил из выбранных конструкций кода с заполнением атрибутов каждого из бизнес-правил на основе атрибутов конструкций согласно заданному общему шаблону.

Методы сильной автоматизации представляют больший интерес, поскольку могут провести часть анализа и тем самым упростить последующую работу бизнес-аналитика. И именно в разработке таких методов заключалась основная цель данной работы. Нами разработаны и реализованы два метода: метод восстановления вычислений и метод валидации экранных портов. Кроме этого, кратко рассматривается метод поиска использований заданной переменной, который в некотором смысле противоположен методу восстановления вычислений. Разработка этого метода является направлением для дальнейших исследований.

Главная идея предложенных нами методов заключается в построении бизнес-правил на основе специального графа информационных зависимостей. Таким образом, мы проводим анализ семантических свойств программ, который является более глубоким по сравнению с синтаксическим и обеспечивает независимость алгоритмов от языков программирования, использованных при написании исходных программ.

Третья глава посвящена собственно предлагаемому нами решению задачи автоматического извлечения бизнес-логики программ. В ней предлагаются три различных метода для разных конкретизации данной задачи. Работа методов демонстрируется на простых примерах.

В разделе 3.1 подробно рассматривается метод восстановления вычислений. Предлагаемый метод строит набор бизнес-правил, последовательное выполнение которых (с учетом условий их выполнения) вычисляет заданную программную переменную.

Метод использует в качестве входных данных специальный информационный граф. Как и стандартный информационный граф, он строится путем анализа потоков данных, ведущих к указанной переменной. Особенность специального графа состоит в том, что он содержит дополнительную информацию об условных зависимостях. На основе данного графа строится операторный граф, который содержит информацию обо всех операторах, используемых для вычисления выбранной переменной, зависимостях по данным между операторами и зависимостях от условий.

После предварительных преобразований операторного графа, включающих разрезание циклов и распространение условий на операторы, с помощью специального обхода графа строится корректная последовательность бизнес-правил. Последовательность считается корректной, если выполнение всех ее бизнес-правил подряд приводит к такому же результату, который выдает исходная программа. Помимо главной цели упорядочения — получить корректную последовательность, существует дополнительная цель - максимально приблизить порядок бизнес-правил к порядку исполнения операторов в программе.

Далее полученные бизнес-правила группируется последовательно разными способами: по принадлежности к программе (в случае наличия

межпрограммных вызовов), по принадлежности к блоку программы, по общим условиям выполнения.

Результатом работы метода является набор бизнес-правил, сгруппированных в бизнес-процедуры. Все бизнес-процедуры связаны между собой посредством триггеров (бизнес-правил, вызывающих исполнение бизнес-процедуры) и реализуют единственную бизнес-функцию.

В качестве примера для демонстрации работы метода рассмотрим фрагмент программы на языке COBOL, вычисляющий скидку (discount) по некоторым правилам.

INIT.

M3VE О ТО DISCOUNT-FACTOR1 DISCOUNT-FACTOR2. MOVE 1 ТО I.

IF UPDATE-NEEDED - "TRUE" THEN IF CURDAY > 5 THEN

COMPUTE DISCOUNT-FACTOR2 - PRICE-0 - 50 MOVE PRICE-0 TO PRICE MOVE 0 TO TAX ELSE

COMPUTE PRICE - PRICE-0 + 10 MOVE 0.6 TO TAX END-IF END-IF.

FACTOR-CALC.

IF I > MAX THEN

GO TO MAIN-CALC. COMPUTE RES = DISCOUNT-FACTOR1 + CONST. ADD CONSTS TO RES.

COMPUTE DISCOUNT-FACTOR1 - RES * 0.25.

ADD 1 TO 1.

PERFORM FACTOR-CALC.

MAIN-CALC.

ADD DISCOUNT-FACTOR2 TO RES.

COMPUTE DISC0UNT-FACT0R2 - 0.5 * DISC0UNT-FACT0R2. COMPUTE TAX - TAX * DISC0UNT-FACT0R2 + RES.

COMPUTE DISCOUNT - DISCOUNT-FACTOR1 * PRICE + DISCOUNT-FACTOR2.

Переменная DISCOUNT в последней строке является точкой интереса. Легко заметить, что не все операторы приведенного фрагмента используются для ее вычисления. Неиспользуемые операторы отмечены курсивом. В частности, считаем таковыми операторы MOVE 1 ТО I и ADD 1 ТО I, которые нужны только для вычисления переменной из условия. Операторы PERFORM и GO ТО участвуют в вычислениях неявно, осуществляя лишь передачу управления. Бизнес-правила из таких операторов не создаются.

и

Для рассматриваемого примера вычисления скидки последовательность бизнес-правил до выделения бизнес-процедур состоит из 9 бизнес-правил.

1. MOVE О ТО DISCOUNT-FACTORl DISCOUNT-FACTOR2

Выход: DISCOUNT-FACTORl, DISCOUNT-FACTOR2

2. При условиях: UPDATE-NEEDED - "TRUE", CURD AY > 5 MOVE PRTCE-0 TO PRICE

Вход: PRICE-0 Выход: PRICE

3. При условиях: UPDATE-NEEDED - "TRUE", NOT CURDAY > 5 COMPUTE PRICE - PRICE-0 + 10

Вход: PRICE-0 Выход: PRICE

4. При условиях: NOT I > MAX

COMPUTE RES - DISCOUNT-FACTORl + CONST Вход: DISCOUNT-FACTORl Выход: RES

5. При условиях: NOT I > MAX ADD CONSTS TO RES Вход/Выход: RES

6. При условиях: NOT I > MAX

COMPUTE DISCOUNT-FACTORl - RES • 0.25 Вход: RES

Выход: DISCOUNT-FACTORl

7. При условиях: UPDATE-NEEDED - "TRUE", CURDAY > 5 COMPUTE DISCOUNT-FACTOR2 - PRICE-0 - 50

Вход: PRICE-0

Выход: DISCOUNT-FACTOR2

8. COMPUTE DISCOUNT-FACTOR2 - 0.5 * DISCOUNT-FACTOR2 Вход/Выход: DISCOUNT-FACTORS

9. COMPUTE DISCOUNT - DISCOUNT-FACTORl * PRICE + DISCOUNT-FACTOR2 Вход: DISCOUNT-FACTORl, PRICE, DISCOUNT-FACTOR2

Выход: DISCOUNT

Результат группирования по условиям приведен ниже. Бизнес-процедуры обозначены римскими цифрами. Триггеры имеют вид «CALL номер группы».

L I) MOVE 0 TO DISCOUNT-FACTORl DISCOUNT-FACTORS

2) При условиях: NOT I > MAX CALL II.

3) При условиях: UPDATE-NEEDED = "TRUE" CALL га.

4) COMPUTE DISCOUNT-FACTOR2 - 0.5 • DISCOUNT-FACTOR2

5) COMPUTE DISCOUNT - DISCOUNT-FACTORl * PRICE + DISCOUNT-FACTOR2

П. 1) COMPUTE RES - DISCOUNT-FACTORl + CONST

2) ADD CONSTS TO RES

3) COMPUTE DISCOUNT-FACTORl = RES • 0JS

III. 1) При условиях: NOT CURDAY > 5

COMPUTE PRICE - PRICE-0 +10 2) При условиях: CURDAY > 5 CALL IV.

IV. 1) MOVE PRICE-0 TO PRICE

2) COMPUTE DISCOUNT-FACTORS - PRICE-0 - 50

Легко заметить, что полученная программа на языке бизнес-правил эквивалентна исходной программе, однако является более структурированной.

Существенным является также тот факт, что в общем случае при создании бизнес-процедур исключается их повторение: если бизнес-процедура с необходимым содержимым уже существует, триггер устанавливается на нее. Это сокращает количество созданных бизнес-правил и упрощает восприятие.

Раздел 3.2 посвящен методу валидации экранных портов. Задачей валидации экранных портов мы назвали задачу поиска всех проверок корректности значений, вводимых пользователем и попадающих в программу через операторы обработки экранных форм — экранные порты. Такая постановка требует некоторого уточнения. Под корректностью значений можно понимать проверку соответствия типов или попадание значения в заданный диапазон. Но поскольку, вообще говоря, нам неизвестно, какие именно проверки проводились в исходной программе, рассматриваются всевозможные сравнения значений, переданных в программу с экранной формы, с любыми другими значениями. Также заметим, что проверка значения на корректность может производиться не сразу, а после некоторых преобразований. Задача решалась для языка COBOL, хотя метод применим и для других языков.

С учетом вышесказанного задача переформулируется более точно: в программе на языке COBOL для указанного экранного порта RECEIVE необходимо найти все условные операторы, в которые можно попасть из переменных данного порта по информационным зависимостям. Также требуется указать последовательности операторов, ведущие из порта в условный оператор.

Задача решается путем построения операторного графа на основе специального информационного графа и создания бизнес-правил с помощью анализа построенного графа.

Заключительный раздел 3.3 третьей главы посвящен методу поиска использований заданной переменной. Задача поиска использований является в некотором смысле противоположной задаче восстановления вычислений, и поэтому для ее решения предлагается использовать аналогичные алгоритмы со сменой ориентации графа. Однако при этом

возникают некоторые сложности, исследование и разрешение которых является нашей дальнейшей целью.

В четвёртой главе описано реализованное программное средство Business Rule Manager. Этот компонент системы Relativity Modernization Workbench предназначен для создания и изменения бизнес-правил. Подобные инструменты называют системами управления бизнес-правшами (Business Rules Management Systems). Они должны удовлетворять следующим требованиям:

• предоставлять сервисы для хранения, просмотра, изменения, защиты и восстановления данных, называемые сервисами репозитория;

• управлять жизненным циклом бизнес-правила: создание, активация, замена, удаление и т.п.;

• проверять бизнес-правила на соответствие стандартам (логическая корректность) и проверять их действенность в бизнесе.

В данной главе демонстрируется, что Business Rule Manager удовлетворяет перечисленным требованиям и, кроме того, имеет дополнительные возможности.

Раздел 4.1 посвящен общему знакомству с инструментом. Здесь вводится необходимое для понимания работы инструмента представление бизнес-правил, подробнее рассматривается BRM-модель, упомянутая в первой главе, и описывается интерфейс пользователя.

Сначала рассматривается представление бизнес-правил и BRM-модель как часть модели репозитория, используемой в системе Relativity Modernization Workbench. Репозиторий служит для хранения информации о рассматриваемой программной системе, и модель репозитория определяет его структуру. Кроме того, модель используется средствами доступа к базе данных репозитория, поскольку запросы к этой базе сформулированы в терминах модели, что обеспечивает дополнительный уровень абстракции. Концептуально модель репозитория делится на два уровня. Модель первого уровня определяет общую структуру приложения. Второй уровень модели репозитория представлен набором подмоделей, специфичных для конкретного языка программирования, и

определяет структуру программы на уровне отдельных операторов. BRM-модель относится к первому уровню модели репозитория.

Чтобы описать интерфейс пользователя, следует отметить, что Business Rule Manager является одним из множества компонентов, связанных в общую систему HyperCode. Все эти компоненты работают совместно. Иными словами, при выборе бизнес-правила на панели Business Rule Manager соответствующий сегмент кода автоматически показывается на всех остальных компонентах системы HyperCode, где это имеет смысл. Пользователь может загружать и закрывать самые разные компоненты без потери контекста своей работы, создавая при этом самые различные отчеты, диаграммы и, безусловно, бизнес-правила. Одновременно допускается работа с множеством различных конфигураций системы HyperCode, каждая из которых открывается в собственном окне. Такая возможность позволяет параллельно исследовать несколько программ. Помимо HyperCode, в системе Modernization Workbench имеются и другие инструменты, в том числе и для исследования межпрограмного взаимодействия, на работе которых мы останавливаться не будем.

Возможности инструмента Business Rule Manager перечислены в разделе 4.2, они включают:

• поиск по различным атрибутам бизнес-правил;

• групповое редактирование бизнес-правил;

• копирование и перемещение бизнес-правил;

• вапидацию сегментов — проверку на соответствие сегмента бизнес-правила и редактированного кода;

• автоматический поиск входных и выходных данных бизнес-правила;

• подстановку терминов предметной области вместо имен переменных (с использованием специального бизнес-словаря);

• автоматическое построение бизнес-правил;

• экспорт и импорт бизнес-правил с использованием формата XML.

Более подробно каждая функциональность описана в соответствующем подразделе. Автоматическое построение бизнес-правил, суть которого была описана в предыдущей главе, вынесено в отдельный раздел 4.3, где рассматриваются особенности реализации его алгоритмов.

Раздел 4.4 содержит данные о тестировании инструмента и его основных алгоритмов на реальных приложениях. В частности, рассматриваются вопросы производительности.

В разделе 4.5 проведено сравнение Business Rule Manager с другими программными средствами, упомянутыми в первой главе.

В заключении описаны основные результаты работы, вклад автора в проделанную работу и идеи дальнейшего развития проекта.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ

• Разработан метод восстановления вычислений заданной программной переменной на основе графа информационных зависимостей программы.

• Разработан метод валидации экранных портов для постоения бизнес-правил из всех проверок корректности значений, вводимых пользователем и попадающих в программу через операторы обработки экранных форм - экранные порты.

• Предложен вспомогательный алгоритм для валидации сегментов бизнес-правил, позволяющий проверять актуальность бизнес-правил после редактирования программного кода.

• Все разработанные алгоритмы реализованы в рамках программного средства анализа бизнес-логики старых приложений Business Rule Manager.

О ЛИЧНОМ ВКЛАДЕ АВТОРА

Теоретическая часть работы выполнялась автором совместно с научным руководителем. Практическая реализация алгоритмов автоматического извлечения бизнес-правил, интерфейса пользователя и некоторых алгоритмов в системе Business Rule Manager выполнена автором лично с применением технологических решений системы Modernization Workbench, разработанной совместно российской

компанией «Ланит-Терком», американской компанией Relativity Technologies и лабораторией смешанных вычислений Института систем информатики СО РАН. Общий объем программного кода составляет около 8000 строк (или 350 Кб).

ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ

1. Бульонков М.А., Емельянов П.Г., Тарабухина Н.К. Business Rule Manager - средство анализа бизнес-логики старых приложений // Вестник Санкт-Петербургского университета. Серия 10: Прикладная математика, информатика, процессы управления. Вып. 1. / СПб.: Изд-во С.-Петерб. Гос. Ун-та, 2010. - С. 23-34.

2. Бульонков М.А., Тарабухина Н.К. Валидация экранных портов в программах на языке COBOL // VIII Всероссийская конференция молодых ученых по математическому моделированию и информационным технологиям: Программа и тезисы докладов / Институт вычислительных технологий СО РАН. Новосибирск, 2007. -С. 87-88. (Электронная публикация доклада: http://www.nsc.ru/ws/YM2007/12731/ Tarabukhina.htm)

3. Вольхина Н.К. Автоматическое восстановление бизнес-логики программ // Молодая информатика. Вып. 2. - Новосибирск, 2006. — С. 90-102.

4. Тарабухина Н.К. Business Rule Manager - средство восстановления бизнес-логики программ // Седьмая международная конференция "Перспективы систем информатики". Рабочий семинар "Наукоемкое программное обеспечение": Инф. бюллетень. - Новосибирск, 2009. - С. 266-272.

5. Вольхина Н.К. Корректное упорядочение бизнес-правил на основе информационных зависимостей // Технологии Microsoft в теории и практике программирования: Тезисы докладов. — Новосибирск, 2007. — С. 4-6.

6. Вольхина Н.К. Поиск по образцу для валидации бизнес-правил // Технологии Microsoft в теории и практике программирования: Тезисы докладов, - Новосибирск, 2006. — с. 10-11.

7. Вольхина Н.К. Группировка бизнес-правил для улучшения понимания программы. // Материалы XLV Международной научной студенческой конференции "Студент и научно-технический прогресс": Математика / Новосиб. Гос. Ун-т. Новосибирск, 2007. - С. 147-148.

Тарабухина Н. К.

МЕТОДЫ ИЗВЛЕЧЕНИЯ БИЗНЕС-ЛОГИКИ НА ОСНОВЕ СЕМАНТИЧЕСКИХ СВОЙСТВ ПРОГРАММ

Автореферат

Подписано в печать 4.05 Объем 1,1 уч.-изд. л.

Формат бумаги 60 х 90 1/16_Тираж 100 экз.

Отпечатано в ЗАО РИЦ «Прайс-курьер»

630090, г. Новосибирск, пр. Ак. Лаврентьева, 6, тел. 334-22-02

Заказ №230

Оглавление автор диссертации — кандидата физико-математических наук Тарабухина, Надежда Константиновна

Введение.

Глава 1. Бизнес-логика программ.

1.1. Основные понятия и определения.

1.1.1. История бизнес-правил в экономике и в программировании.

1.1.2. Определения бизнес-правила и бизнес-логики.

1.1.3. Сравнение моделей бизнес-правил.

1.2. Основные подходы к автоматизации работы с бизнес-правилами.

1.2.1. Использование бизнес-правил для проектирования приложения.

1.2.2. Извлечение бизнес-логики из кода приложения.

1.2.3. Программные средства для проектирования приложений с использованием бизнес-правил.

1.2.4. Программные средства для извлечения бизнес-логики.

Глава 2. Методы извлечения бизнес-логики.

2.1. Постановка задачи.

2.2. Варианты решений.

2.2.1. Слабая автоматизация.

2.2.2. Сильная автоматизация.

Глава 3. Автоматическое создание бизнес-правил на основе семантических свойств программ.

3.1. Восстановление вычислений.

3.1.1. Специальный информационный граф как входные данные метода

3.1.2. Построение и преобразование операторного графа.

3.1.3. Анализ условий.

3.1.4. Создание последовательности бизнес-правил.

3.1.5. Группировка бизнес-правил в бизнес-процедуры.

3.2. Валидация экранных портов.

3.2.1. Построение и анализ операторного графа.

3.2.2. Создание бизнес-правил.

3.3. Поиск использований заданной переменной.

Глава 4. Business Rule Manager - средство анализа бизнес-логики старых приложений.

4.1. Общее знакомство с инструментом.

4.1.1. Представление бизнес-правил.

4.1.2. Пользовательский интерфейс.

4.2. Возможности инструмента Business Rule Manager.

4.2.1. Жизненный цикл бизнес-правил.

4.2.2. Проверки бизнес-правил.

4.2.3. Поиск по атрибутам и групповое редактирование.

4.2.4. Обнаружение входных и выходных данных и подстановка терминов предметной области.

4.3. Особенности реализации методов автоматического создания бизнесправил.

4.3.1. Интерфейсные решения, или особенности с точки зрения пользователя.

4.3.2. Программные решения.

4.4. Применение на реальных приложениях.

4.5. Сравнение с другими программными средствами.

Введение 2010 год, диссертация по информатике, вычислительной технике и управлению, Тарабухина, Надежда Константиновна

В современном обществе компьютеры используются практически во всех областях человеческой деятельности и компьютерные программы составляют важную часть бизнес-процессов предприятий и организаций. Подобные программы создавались в течение не одного десятка лет и на сегодняшнем этапе требуют постоянной поддержки, модернизации и адаптации к меняющимся условиям их применения. Ситуация осложняется тем, что существенная часть этих приложений разработана с использованием устаревших языков программирования COBOL, PL/1, Natural и других, мало употребляемых современными программистами. Часто такие программы не имеют документации вообще или документация не соответствует коду, поскольку она уже не отражает многочисленных изменений, произведенных за годы эксплуатации. Кроме того, исходный код рассматриваемых приложений может оказаться частично утраченным, что затрудняет компиляцию и отладку.

Также нельзя не отметить, что для любого изменения существующих бизнес-приложений необходимо понимание предметной области их применения, которым программисты в большинстве случаев не владеют. Поэтому важно предоставить системным аналитикам средство работы с бизнес-логикой приложений, требующее от пользователя лишь минимальных навыков программирования. Полученные с помощью такого средства бизнес-правила имеют самостоятельную ценность и являются универсальным методом коммуникации между программистами и аналитиками. В дальнейшем бизнес-правила могут использоваться для корректировки работы имеющейся программы, создания спецификаций новых приложений или документирования кода.

Как показывает практика, многие бизнес-приложения не соответствуют современному уровню развития информационных технологий, поскольку 4 большинство из них было создано до появления персональных компьютеров, сети Интернет и графического интерфейса пользователя. Эти приложения функционируют на устаревшей технике, под управлением архаичных операционных систем и не используют современные средства хранения и передачи данных. Подобные бизнес-приложения считаются устаревшими или унаследованными (legacy) и, безусловно, нуждаются в модернизации. Возможны различные методы их модернизации, в том числе и с применением таких элементов реинжиниринга (или «обратного проектирования»)!!], как автоматическое извлечение бизнес-логики и автоматический перевод кода приложения на другие языки программирования. Рассмотрим кратко некоторые из этих методов и отметим необходимость использования бизнес-правил для успешного их применения.

Метод разработки нового прилоэ/сения для полной замены существующего является одним из самых дорогостоящих методов модернизации, требующим значительного времени на проектирование, разработку, тестирование и внедрение нового приложения. Предварительное извлечение бизнес-логики исходного приложения в виде бизнес-правил может быть полезно на всех этапах модернизации: в качестве спецификаций при проектировании и разработке и в качестве тестовых сценариев (use cases) при тестировании. Важно, что соответствие новой системы бизнес-правилам, извлеченным из старой системы, обеспечивает корректность модернизации.

Метод автоматического перевода устаревшего бизнес-приложения на новые языки программирования и новые платформы является более привлекательным. К преимуществам использования этого метода относится быстрота и относительно низкая стоимость проведения модернизации.

Однако необходимо отметить, что полная автоматизация для реально используемых бизнес-приложений не всегда возможна и структура автоматически созданного кода не всегда является оптимальной. Данный метод может обеспечить синтаксически корректный перевод с одного языка 5 на другой, но это, как правило, не приводит к улучшению структуры программы и не позволяет выделить действительно интересные фрагменты (бизнес-правила) из устаревшего кода.

Метод извлечения знаний предполагает использование средств извлечения (в том числе и автоматического) и анализа бизнес-правил с последующей реализацией (в том числе и автоматической) полученных правил в новом приложении на новых языках и новых платформах. Этот метод обеспечивает высокое качество модернизации при высокой скорости проведения работы и относительно низкой ее стоимости.

При использовании любого метода модернизации детали технической реализации устаревших приложений обычно не представляют особой ценности при попытке создания современных аналогов этих приложений. В самом деле, для современных графических приложений, работающих в сети Интернет, совершенно неважно, как именно были реализованы детали пользовательского интерфейса на алфавитно-цифровом дисплее в оригинальной программе или какие средства использовались для обеспечения совместной работы пользователей. Наибольшую ценность представляют используемые в существующих приложениях бизнес-правила и алгоритмы, поскольку именно они определяют, что и как делает приложение.

На сегодняшний день объем существующих бизнес-приложений, нуждающихся в полной замене или дальнейшей модернизации, настолько велик, что актуальность автоматического извлечения бизнес-логики программ не вызывает сомнений.

Цель работы заключается в исследовании методов автоматического построения бизнес-правил на основе семантических свойств программ. Основные задачи в рамках достижения этой цели включают:

• Разработку метода восстановления вычислений заданной программной переменной на основе графа информационных зависимостей программы.

• Разработку метода валидации экранных портов для построения бизнес-правил из всех проверок корректности значений, вводимых пользователем и попадающих в программу через операторы обработки экранных форм - экранные порты.

• Построение вспомогательного алгоритма для валидации сегментов бизнес-правил, позволяющего проверять актуальность правил после редактирования программного кода.

• Реализацию всех разработанных алгоритмов в рамках программного средства анализа бизнес-логики старых приложений Business Rule Manager.

Практическая ценность

Практическим результатом работы явилось создание средства Business Rule Manager как одной из важнейших подсистем системы Modernization Workbench [1, 3, 4, 14, 32] анализа старых приложений, которая в настоящее время успешно применяется многими компаниями Европы, Азии и Америки для выполнения работ в области реинжиниринга. Описанные в работе методы извлечения бизнес-логики широко используются при анализе и модернизации приложений в области банковской деятельности, страхования, снабжения и управления.

Апробация работы

Результаты работы были представлены на конференциях-конкурсах «Технологии Microsoft в теории и практике программирования», проходивших в Новосибирске в 2006 и 2007 годах, на XLV Международной научной студенческой конференции «Студент и научно-технический прогресс» в 2007 году, на VIII Всероссийской конференции молодых ученых по математическому моделированию и информационным технологиям, проходившей в Институте вычислительных технологий СО РАН в 2007 году, на рабочем семинаре «Наукоемкое программное обеспесение» в рамках седьмой международной конференция памяти академика А. П. Ершова «Перспективы систем информатики» (PSI'09) в 2009 году, а также обсуждались в ряде встреч с российскими и зарубежными специалистами в области реинжиниринга.

Автором опубликовано 9 печатных работ, из них по теме диссертации — 7 работ.

Структура и объем работы

Диссертационная работа состоит из введения, четырех глав, заключения, списка литературы и трех приложений. Объем диссертации — 123 стр. Список литературы содержит 40 наименований. Работа включает 4 таблицы и 56 иллюстраций, в том числе полученных с использованием разработанного программного обеспечения.

Заключение диссертация на тему "Методы извлечения бизнес-логики на основе семантических свойств программ"

Основные результаты

• Разработан метод восстановления вычислений заданной программной переменной на основе графа информационных зависимостей программы.

• Разработан метод валидации экранных портов для постоения бизнес-правил из всех проверок корректности значений, вводимых пользователем и попадающих в программу через операторы обработки экранных форм - экранные порты.

• Предложен вспомогательный алгоритм для валидации сегментов бизнес-правил, позволяющий проверять актуальность бизнес-правил после редактирования программного кода.

• Все разработанные алгоритмы реализованы в рамках программного средства анализа бизнес-логики старых приложений Business Rule Manager.

Заключение

Применение методов извлечения знаний в формате бизнес-правил фактически стало стандартом для документирования, сопровождения и модернизации программного обеспечения. Различными компаниями разработаны многочисленные системы для хранения, управления и исполнения бизнес-правил. Наиболее сложной и трудоемкой задачей остается собственно извлечение бизнес-правил из кода программ. Отдельные средства позволяют в той или иной степени автоматизировать этот процесс, как правило путем выполнения поиска по образцу в исходном коде. К сожалению, бизнес-правила, извлеченные таким образом, имеют низкое качество и не вполне отражают логику исследуемого приложения.

Данная работа посвящена разработке автоматических методов извлечения бизнес-логики на основе семантических свойств программ. Применение алгоритмов обработки графов в сочетании с использованием результатов синтаксического и потокового анализов позволило существенно улучшить качество бизнес-правил и восстановить порядок их использования. Результаты исследований были использованы при создании системы управления бизнес-правилами Business Rule Manager, которая в составе продукта Relativity Modernization Workbench успешно используется для анализа, документирования и модернизации устаревших программ многими компаниями Европы, Азии и Америки.

Теоретическая часть работы выполнялась автором совместно с научным руководителем. Практическая реализация алгоритмов автоматического извлечения бизнес-правил, интерфейса пользователя и некоторых алгоритмов в системе Business Rule Manager выполнена автором лично с применением технологических решений системы Modernization Workbench, разработанной совместно российской компанией «Ланит-Терком», американской компанией Relativity Technologies и лабораторией смешанных вычислений Института

107 систем информатики СО РАН. Общий объем программного кода составляет около 8000 строк кода (или 350 Кб).

В качестве направлений дальнейших исследований можно отметить улучшение производительности системы, оптимизацию запросов к базе данных и доработку метода поиска использований переменной.

Библиография Тарабухина, Надежда Константиновна, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Автоматизированный реинжиниринг программ / Под ред. проф. А.Н. Терехова и А.А. Терехова. — Спб.: Издательство С.-Петербургского университета, 2000. 332 с.

2. Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструменты. -М.: Издательский дом "Вильяме", 2002.

3. Бульонков М.А., Бабурин Д.Е. HyperCode открытая система визуализации программ // Автоматизированный реинжиниринг программ / Ред. Терехов А.Н. СПб: Изд-во СПбГУ, 2001. - С. 96-106.

4. Бульонков М.А., Бабурин Д.Е., Емельянов П.Г., Филаткина Н.Н. Средства визуализации при перепроектировании программ // Программирование. 2001. № 27. - С. 21-33.

5. Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология / Пер. с англ. И. В. Романовского. СПб.: Невский Диалект; БХВ-Петербург, 2003. - 654 е.: ил.

6. Касьянов В.Н. Оптимизирующие преобразования программ. М.: Наука, 1988.

7. Касьянов В. Н., Евстигнеев В. А. Графы в программировании: обработка, визуализация и применение. СПб.: BHV-Санкт-Петербург, 2003.

8. Кристофидес Н. Теория графов. Алгоритмический подход. М.: Мир, 1978.

9. Михайлов А.В. Объектно-ориентированная технология разработки программных систем (UML), 2002. URL: http://gis-2000.narod.ru/books.html

10. Новоженов Ю.В. Опыт реинжиниринга объектно-ориентированного комплекса программ с применением CASE-средства Rational Rose и109

11. SILVERRUN // Материалы конференции «Индустрия программирования '96». URL: http://www.citforum.ru/programming/prg96/97.shtml

12. Свами М., Тхуласираман К. Графы, сети и алгоритмы. — М.: Мир, 1984.

13. A Brief History of the Business Rule Approach, 2nd ed. // Editors of BRCommunity.com. Business Rules Journal, Vol. 7, No. 11. Business Rule Community, 2006. URL: http://www.BRCommunity.com/a2006/b317.html

14. Baker B.S. Parameterized Duplication in Strings: Algorithms and an Application to Software Maintenance // SIAM J. on Computing. 1997. - Vol. 26, N5.-P. 1343-1362.

15. Bulyonkov M., Filatkina N. Exploring Data Flow in Legacy Systems // Proceedings of the Second Asian Workshop on Programming Languages and Systems (APLAS 2001), 2001. P. 61-75.

16. Business Rule Extraction // SoftwareMining White Paper, 2008. URL: http://www.softwaremining.com/download/SM-BRE-Brochure.pdf. ». ,

17. Business Rules Manifesto // Business Rules Group, 2003. URL: http://www.businessrulesgroup.org/brmanifesto.htm

18. Date C.J. What Not How: The Business Rules Approach to Application Development. Boston, MA: Addison-Wesley, 2000. - 144 p.

19. Haggerty N. Modeling Business Rules Using the UML and CASE // Business Rules Journal, Vol. 1, No. 10. Business Rule Community, 2000. URL: http://www.brcommunity.com/bO 16.php

20. Khusidman V. Business Rules Discovery from Existing Applications // Business Rules Journal, Vol. 8, No. 10. Business Rule Community, 2007. URL: http://www.BRCommunity.com/a2007/b366.html

21. Krinke J. Program Slicing // Handbook of Software Engineering and Knowledge Engineering, Volume 3: Recent Advances. World Scientific Publishing, 2005.

22. Legacy IT Applications & Compliance with Sarbanes-Oxley // Trinity Millenium Group. URL: www.tringroup.com/images/TMGiSOXWP.pdf

23. McAllister A. An Alternative Strategy for Legacy Modernization. // z/Journal, 2008. URL: http://www.zjournal.com/index.cfm?section=article&aid=947#

24. Modernizing and Improving the Maintainability of RPG Applications Using X-Analysis Version 5.6 // IBM Redbook, 2006. URL: http://www.redbooks.ibm.com/redpapers/pdfs/redp4046.pdf.

25. Perkins A. Business Rules Are Meta Data // Business Rules Journal, Vol. 3, No. 1. Business Rule Community, 2002. URL: http://www.BRCommunity.com/a2002/b097.html

26. Ross R.G. Exploring Business Rules. // Business Rule Community, 1999. URL: http ://www. brcommunity. с om/a439.php

27. Ross R.G. Principles of the Business Rule Approach. Boston, MA: Addison-Wesley, 2003.-400 p.

28. Semantics of Business Vocabulary and Business Rules // Object Management Group, 2008. URL: http://www.omg.org/spec/SBVR/LO/PDF

29. Sneed H. Extracting Business Logic from Existing COBOL Programs as a Basis for Redevelopment // Proceedings of the 9th International Workshop on Program Comprehension, 2001. P. 167-175.

30. Wadhwa V., Erlikh L., Oara I.M., Terekhov A.N., Bulyonkov M.A. Method and system of business rule extraction from existing applications for integration into new applications. US Patent 6389588, Submitted 02/04/1999. Published 05/14/2002.

31. Weiser M. Program slicing // IEEE Transactions on Software Engineering, Volume 10, Issue 4 IEEE Computer Society Press, 1984. - P. 352-357.

32. Публикации по теме диссертации

33. Вольхина Н.К. Автоматическое восстановление бизнес-логики . программ // Молодая информатика. Вып. 2. Новосибирск, 2006. - С. 90102.

34. Вольхина Н.К. Группировка бизнес-правил для улучшения понимания программы. // Материалы XLV Международной научной студенческой конференции "Студент и научно-технический прогресс": Математика / Новосиб. Гос. Ун-т. Новосибирск, 2007. С. 147-148.

35. Вольхина Н.К. Корректное упорядочение бизнес-правил на основе информационных зависимостей // Технологии Microsoft в теории и практике программирования: Тезисы докладов. — Новосибирск, 2007. — С. 4-6.

36. Вольхина Н.К. Поиск по образцу для валидации бизнес-правил // Технологии Microsoft в теории и практике программирования: Тезисы докладов. — Новосибирск, 2006. — с. 10-11.