Развитие теоретических основ создания автоматизированных информационных систем. Методы тестирования, отладки и верификации программ. Теории синтаксического анализа, синтеза и реинжиниринга бизнес-процессов. Формальные грамматики и языки программирования.
Аннотация к работе
Основные результаты теории программирования были получены в 50-80 г.г. XX-го века и относились к следующим направлениям: формальные грамматики и языки; параллельные процессы и методы распараллеливания; теория тестирования и методы отладки программ; методы оптимизации, верификации, анализа и оценки качества; теория баз данных и баз знаний; структурные и объектно-ориентированные методы анализа и проектирования; теория синтаксического анализа и компиляции. В частности, для решения задач проектирования процесса (порождения и анализа множества вариантов, выбора варианта и т.п.) применяются параллельные атрибутные порождающие грамматики специального вида; для решения задачи оценки качества выбранного варианта используются адаптированные для бизнес-процесса критерии и метрики сцепления и связности, в свое время предложенные для оценки качества программного обеспечения; модели и методы анализа и проектирования адаптируются и дополняются новыми моделями, специально разработанными для бизнес-процессов (например, business use-cases в UML); Формальный аппарат решения задач синтеза и реинжиниринга бизнес-процесса основан на введении специальной параллельной атрибутной порождающей грамматики для бизнес-процесса, назначение которой заключается в умении строить любые правильные сценарии бизнес-процесса (т.е. возможные последовательности необходимых для выполнения процесса бизнес-функций), не генерируя при этом ни одной неправильной цепочки.Современный этап развития ИТ характеризуется комплексностью подходов, методов и моделей их создания. Одной из основополагающих на сегодняшний день концепций в рассматриваемой области является концепция архитектуры предприятия (EA - Enterprise Architecture), под которой понимается всестороннее и исчерпывающее описание (модель) всех его ключевых элементов и межэлементных отношений. ЕА интегрирует три слоя предприятия (стратегический, процессный и системный) в единую модель, позволяющую осуществлять его комплексный анализ в различных разрезах (экономическом, организационном, качественном, количественном и т.д.) для совершенствования деятельности по принятию решений, контролю, координации и мониторингу различных его частей. Разработка комплекса формальных моделей ЕА, методов их аналитического исследования, теоретических и методических основ комплексного реинжиниринга и консалтингового подхода (в части ИТ-консалтинга) в целом, позволяющих: осуществлять функционально-структурное проектирование (синтез) элементов ЕА, интегрирующих процессную и системную компоненты; проводить верификацию таких элементов; оценивать их состояние на основе комплекса критериев и обеспечивать переход от текущего состояния к целевому с использованием соответствующих критериев оценки и метрик; осуществлять взаимоувязанное автоматическое распараллеливание этих элементов.
Введение
Основные результаты теории программирования были получены в 50-80 г.г. XX-го века и относились к следующим направлениям: формальные грамматики и языки; параллельные процессы и методы распараллеливания; теория тестирования и методы отладки программ; методы оптимизации, верификации, анализа и оценки качества; теория баз данных и баз знаний; структурные и объектно-ориентированные методы анализа и проектирования; теория синтаксического анализа и компиляции.
Все эти методы были созданы до появления персональных компьютеров и, в основном, развивались в сторону ориентации на новые вычислительные архитектуры (прежде всего, многопроцессорные вычислительные комплексы классов SIMD и MIMD).
В частности, в ИПУ РАН в 70-80 г.г. прошлого века в рамках работ по созданию базового системного программного обеспечения для МВК ПС-2000 и ПС-3000 фактически были предложены теоретические основы синхронного и асинхронного параллельного программирования практически по всем из вышеперечисленных направлений [Прангишвили и др., 1983], [Трахтенгерц, 1987], [Разбегин и др., 1985].
Второй этап развития теоретических основ создания автоматизированных информационных систем связан с массовым применением компьютеров в производственной деятельности, с изменением роли информационных технологий (ИТ), ставших частью этой деятельности. Фактически, в современных условиях под ИТ понимается регламентированный бизнес-процесс, поддержанный (полностью или частично) автоматизированной информационной системой.
В этой связи на данном этапе основное внимание было уделено созданию теории инжиниринга/реинжиниринга бизнес-процессов [Калянов, 2000]. При этом созданная теория во многом опирается на результаты вышеперечисленных направлений теории программирования. В частности, для решения задач проектирования процесса (порождения и анализа множества вариантов, выбора варианта и т.п.) применяются параллельные атрибутные порождающие грамматики специального вида;
для решения задачи оценки качества выбранного варианта используются адаптированные для бизнес-процесса критерии и метрики сцепления и связности, в свое время предложенные для оценки качества программного обеспечения;
для решения задачи верификации разработан комплекс моделей, критериев и методов тестирования процесса, обеспечивающий обнаружение наиболее части встречающихся ошибок определенных классов;
модели и методы анализа и проектирования адаптируются и дополняются новыми моделями, специально разработанными для бизнес-процессов (например, business use-cases в UML);
разрабатываются методы автоматического распараллеливания бизнес-процессов и т.п.
Таким образом, родство задач проектирования программного обеспечения и синтеза и реинжиниринга бизнес-процессов было подмечено во второй половине 90-х годов прошлого века. Стало понятно, что общим математическим аппаратом для их исследования могут служить грамматики, параллельные процессы, графовые модели различных видов.
Порождающие грамматики для бизнес-процесса
Формальный аппарат решения задач синтеза и реинжиниринга бизнес-процесса основан на введении специальной параллельной атрибутной порождающей грамматики для бизнес-процесса, назначение которой заключается в умении строить любые правильные сценарии бизнес-процесса (т.е. возможные последовательности необходимых для выполнения процесса бизнес-функций), не генерируя при этом ни одной неправильной цепочки.
Определение. Параллельной атрибутной порождающей грамматикой для бизнес-процесса называется упорядоченная девятка объектов
G = (VN, VT, V0, P, As, Ms, An, Mn, C), где VT - множество терминальных символов;
VN - множество нетерминальных символов;
V0IVN - множество начальных символов;
P - множество порождающих правил;
As - конечное множество синтезируемых атрибутов;
Ms - множество методов синтеза атрибутов;
An - конечное множество наследуемых атрибутов;
Mn - множество методов наследования атрибутов;
C - множество символов, определяющих параллелизм.
Первые четыре объекта G определяют традиционным образом порождающую грамматику. Следующие четыре объекта определяют множество свойств (атрибутов), характеризующих символы порождаемых цепочек, и правила обработки этих свойств.
Последний символ предназначен для обеспечения возможности порождения подцепочек бизнес-функций, которые могут (но не обязательно должны) выполняться параллельно.
Множество VT включает в себя идентификаторы функций, завершающих бизнес-процесс.
Множество VN содержит идентификаторы всех остальных функций, содержащихся в бизнес-процессе, при этом инициирующие процесс функции выделены в отдельное подмножество V0.
Множество As состоит из кортежей значений ресурсов (r1, r2, …, rk), характеризующих затраты на выполнение компонентов бизнес-процесса (время выполнения, число сотрудников, требуемое машинное время, объемы сырья и затратных материалов и т.п.).
Множество An содержит перечень кодов структурных подразделений предприятия OIIAN (с необходимой степенью детализации: до уровня отделений, отделов, лабораторий, групп и т.п.), задействованных при выполнении бизнес-процесса.
Множество C = { ‘, °} состоит из апострофа над левой частью порождающего правила, означающего начало параллельных процессов, и пустого символа «°» над левой частью порождающего правила, означающего линейный переход к правой части правила.
Множество порождающих правил Р имеет вид: ::= ? ;
::= ;
::= ;
::= o° ;
::= ‘o° ; ° ::= ;
::= ;
::= o ;
::= () o ° ;
::= o , ;
::= ;
::= ;
Фактически имеется три следующих типа порождающих правил: 1) A ? AB {(r1, r2, …, rk)} {oi} или A{oj} ? A{oj}B {(r1, r2, …, rk)} {oi}, где A, B - бизнес-функции; rm - значение m-го ресурса, требуемого при исполнении функции B (1 ? m ? k); oj,oi - идентификаторы подразделений в рамках организационно-штатной структуры, исполняющих функции А и B, соответственно.
2) A’ ? AB {(r1, r2, …, rk)} {oi} или A{oj}’ ? A{oj}B {(r1, r2, …, rk)} {oi}, где символ “’” означает возможность параллельного исполнения бизнес-функции, для чего необходимо наличие еще по крайней мере одного правила A’ ? AC (или A{oj}’ ? A{oj}С, соответственно).
3) s0 ? A {(r1, r2, …, rk)} {oi} или s0’ ? A {(r1, r2, …, rk)} {oi}, где А I V0, а s0 - квазиначальный символ в ситуации, когда ?V0 ?> 1.
Отметим, что при параллельном исполнении бизнес-функций B и C необходимо соблюдение следующих условий завершения параллелизма: (B ?* AD) U (C ?* BD), где D I VN , a и b - произвольные цепочки нетерминальных символов (бизнес-функций), не включающие одинаковых символов, или (B ?* AV) U (C ?* BW) , где V, W I VT (или V I VT , W I VN).
Другими словами, возможны два варианта завершения параллельного исполнения, соответствующих этим условиям: слияние параллельных участков или независимое завершение каждого из них.
Таким образом, атрибутная грамматика представляет собой порождающую грамматику с дополнительными механизмами передачи информации и ее обработки (например, требования ограничений по ресурсам). Неформально атрибутную грамматику можно определить как порождающую грамматику, нетерминальным и терминальным символам которой приписываются таблицы значений атрибутов.
Атрибуты подобной грамматики разделяются на два типа: синтезируемые и наследуемые. Синтезируемые атрибуты вычисляются по методам, связанным с нетерминалами, входящими в левую часть порождающего правила, тогда как наследуемые атрибуты - по методам, связанным с терминалами и нетерминалами, входящими в правую часть порождающего правила.
Другими словами, значение синтезируемого атрибута некоторого нетерминального символа определяется символами, расположенными в дереве вывода под этим нетерминалом. Такое восходящее вычисление выражается в том, что методы вычисления атрибутов, ассоциированные с правилами вывода, указывают, как вычислять атрибуты в левой части правила по заданным атрибутам символов правой части. Значение наследуемого атрибута ограничивается деревом вывода над соответствующим символом.
Методы синтеза и наследования атрибутов привязываются к терминальным и нетерминальным символам и имеют вид: msi: (r1, r2, …, rk) = (fi1(r1, r2, …, rk), fi2(r1, r2, …, rk), ..., fik(r1, r2, …, rk)) mni: (ok) = fik(ok).
Введение в грамматику синтезируемых атрибутов и методов их синтеза позволяет порождать только цепочки, удовлетворяющие заранее известным жестким ограничениям на совокупное использование бизнес-процессом одного или нескольких ресурсов.
Например, может быть заранее поставлено условие, что затраты на изготовление некоторого изделия не должны превышать установленной суммы, или что изделие должно быть изготовлено не позднее определенной даты, или и то и другое.
В этом случае грамматика будет содержать методы синтеза затрат временного и стоимостного ресурсов, что позволит при порождении вариантов выполнения бизнес-процесса контролировать их использование и, в случае выхода за допустимые границы, прерывать порождение данной цепочки, что обеспечит экономию времени на порождение вариантов и позволит сократить их количество для дальнейшего анализа с целью принятия окончательного решения по выбору варианта, удовлетворяющего лицо, принимающее решения.
Назначение наследуемых атрибутов заключается в необходимости передавать на последующие шаги порождения бизнес-процесса информацию о местах выполнения бизнес-функций в организационно-штатной структуре предприятия. В случае, когда бизнес-функция может быть выполнена в различных подразделениях предприятия, наследуемый атрибут несет информацию по выбору правил порождения хвоста цепочки выполнения бизнес-процесса. Поэтому имеются лишь два метода наследования, носящих элементарный характер: 1) Если на рассматриваемом шаге порождения имеется альтернатива по месту выполнения данной бизнес-функции, то соответствующий атрибут приписывается к бизнес-функции, и при дальнейшем выборе порождающего правила рассматривается неотделимо от нее.
2) Если такой альтернативы не существует, то не вводится никаких ограничений на дальнейший выбор порождающих правил.
Таким образом, введенная грамматика бизнес-процесса может порождать только цепочки вида: C1 ... Cn Сф, где C1 ... Cn - нетерминальные символы, Сф - терминальный символ. Обозначим сценарий бизнес-процесса через L(G).
Утверждение. Пусть L1, L2 I { L(G) }. Тогда справедливо следующее: 1) WI{L(G) }, где W - пустое множество
2) {e} I { L(G) }, где e - пустая цепочка
3) {a}, {a{oi}}, {a, a{oi}} I { L(G) }, где a - любой терминальный символ, oi - любой из его наследуемых атрибутов
4) L1E L2 I { L(G) }
5) L1 L2 I { L(G) }
6) L1 * I { L(G) }
Таким образом, сценарий бизнес-процесса принадлежит классу регулярных множеств, т.е. является наименьшим из всех классов языков, содержащих множества W, {e}, {a}, и замкнут относительно операций объединения, конкатенации и итерации.
Следовательно, он является языком, распознаваемым недетерминированным конечным автоматом, а порождающая его грамматика является правосторонней. Практическим следствием данного утверждения является возможность (при проведении работ по реорганизации деятельности предприятий) осуществлять объединение бизнес-процессов, слияние цепочек их выполнения, организации циклов и т.п., не выходя за границы построенного класса. информационный программирование реинжиниринг
Предложенные грамматики обеспечивают генерацию огромного количества сценариев бизнес-процесса. При принятии решения по выбору одного или нескольких вариантов перед лицом, принимающим решения (ЛПР), стоят задачи оценки значимости отдельных составляющих ситуации и всей ситуации в целом; анализа возможных решений, оценки их эффективности и последствий; выбора решения, наилучшего с точки зрения ЛПР. Для их решения существует большое количество методов, основанных на формировании набора критериев и оценки их важности (метод анализа иерархий, метод нечетких множеств, метод Парето, метод кусочно-линейной аппроксимации и др.), для целей данной работы может быть применена любая их комбинация.
Вывод
Современный этап развития ИТ характеризуется комплексностью подходов, методов и моделей их создания. Одной из основополагающих на сегодняшний день концепций в рассматриваемой области является концепция архитектуры предприятия (EA - Enterprise Architecture), под которой понимается всестороннее и исчерпывающее описание (модель) всех его ключевых элементов и межэлементных отношений. ЕА интегрирует три слоя предприятия (стратегический, процессный и системный) в единую модель, позволяющую осуществлять его комплексный анализ в различных разрезах (экономическом, организационном, качественном, количественном и т.д.) для совершенствования деятельности по принятию решений, контролю, координации и мониторингу различных его частей.
В настоящее время в рамках концепции ЕА активно создаются специальные языки моделирования архитектуры (EML - Enterprise Modeling Language), адаптируются и разрабатываются интегрирующие модели-платформы (прежде всего, базирующиеся на схеме Захмана) и т.п. [Калянов, 2006]. Консалтинговые компании получают все больше и больше проектов, связанных с построением ЕА и созданием корпоративной автоматизированной информационной системы на ее основе. Однако, это работы ведутся на интуитивном, слабо формализованном уровне, отсутствуют метрики и критерии оценки целевого состояния.
В этой связи напрашивается переход к третьему этапу развития теоретических основ ИТ, направленному на интеграцию результатов первого и второго этапов, ориентированных, соответственно, на программное обеспечение и процессы (системный и процессный слои ЕА), и основанных при этом на одних и тех же базовых концепциях. В качестве первоочередных задач такого развития следует назвать нижеперечисленные: 1. Разработка комплекса формальных моделей ЕА, методов их аналитического исследования, теоретических и методических основ комплексного реинжиниринга и консалтингового подхода (в части ИТ-консалтинга) в целом, позволяющих: осуществлять функционально-структурное проектирование (синтез) элементов ЕА, интегрирующих процессную и системную компоненты; проводить верификацию таких элементов; оценивать их состояние на основе комплекса критериев и обеспечивать переход от текущего состояния к целевому с использованием соответствующих критериев оценки и метрик; осуществлять взаимоувязанное автоматическое распараллеливание этих элементов.
2. Создание принципов построения, моделей и алгоритмов комплекса инструментальных программных средств поддержки разработанных подходов и методов управления ЕА и ИТ.
3. Практическая проверка эффективности созданных методов, моделей и алгоритмов при выполнении консалтинговых проектов для предприятий различного типа.
При этом проводимые исследования должны базироваться на использовании теории множеств, теории графов, теории формальных языков и порождающих грамматик, методов структурной декомпозиции, моделей теории автоматов и сетей, методов тестирования программного обеспечения и оценки его качества и т.п.
Список литературы
1. [Калянов, 2000] Калянов Г.Н. Теория и практика реорганизации бизнес-процессов. - М.: СИНТЕГ, 2000.
2. [Калянов, 2006] Калянов Г.Н. Методы и инструменты моделирования архитектуры предприятия // Проблемы теории и практики управления. - 2006. №5.
3. [Прангишвили и др., 1983] Прангишвили И.В., Виленкин С.Я., Медведев И.В. Параллельные вычислительные системы с общим управлением. - М.: Энергоатомиздат, 1983.
4. [Разбегин и др., 1985] Разбегин В.П., Калянов Г.Н., Куприянов Б.В. Система программирования векторных вычислений // Программирование. - 1985. №4.
5. [Трахтенгерц, 1987] Трахтенгерц Э.А. Программное обеспечение параллельных процессов. - М.: Наука, 1987.