Жихарев А.Г.
1. Проблема хранения и систематизации УФО-элементов UFO-toolkit – средство проектирования бизнес-процессов, в основе которого лежит оригинальный системный подход «узел – функция – объект». В рамках данного подхода любая организационная система представляется в виде трех составляющих:
11 - узел – перекресток входящих и выходящих связей - функция – деятельность, выполняемая проектируемой организационной системой -объект – реализует функцию проектируемой организационной системы Одним из наиболее перспективных отличий данного инструмента от подобных продуктов является возможность частичной автоматизации построения УФО – диаграмм за счет хранения ранее созданных УФО – элементов в специальных библиотеках. Но при большом объеме содержимого такой библиотеки процесс выборки УФО – элемента становится довольно долгим. Данную проблему можно решить за счет классификации УФО – элементов на девять классов, которые представлены на рисунке 1.
Рис.1. Иерархия классов УФО – элементов
2. Требования к приложению
Итак, начнем с концептуальной модели приложения – конвертера, но для начала нужно определиться, а что же вообще наше приложение будет делать:
1. Отделение библиотеки от модели ( в данный момент библиотека УФО – элементов и модель сохраняются в одном XML – файле) 2. Преобразование библиотеки старого образца в библиотеку с новой структурой хранения УФО – элементов 3. Приложение должно содержать модуль обработки библиотеки нового типа, т.е. должно предоставлять возможность:
А. Добавление новых УФО-элементов. При добавлении УФО-элемента необходимо проанализировать набор входных и выходных связей и структуру УФО-элемента (иерархию УФО-элементов), таким образом, чтобы 12 имелась возможность находить не только добавленный УФО-элемент, но и все его дочерние элементы. Всем УФО-элементам должен быть присвоен уникальный идентификатор.
Б. Выборка УФО-элементов, с заданными наборами входных и выходных портов с автоматической сортировкой по степени соответствия.
Степень соответствия вычисляется по формуле:
где: ConnectedCount - количество портов, которые соответствуют заданным, InputSelCount – количество заданных выходных портов, OutputSelCount – количество заданных входных портов, InputPortCount – количество входных портов УФО-элемента, OutputPortCount - количество выходных портов УФО-элемента.
Стопроцентное соответствие получают те УФО-элементы, набор входных и выходных портов которых полностью идентичен заданному. В.Удаление УФО-элементов по заданным идентификаторам. Должны быть удалены УФО-элементы со всеми дочерними элементами. 4. Приложение должно предоставлять возможности отслеживания скорости выполнения приведенных выше операций.
3. Контекст приложения Исходя из выше перечисленных требований, контекстная модель приложения примет вид, представленный на рисунке 2.
Рис.2. Контекст приложения
Как видно из рисунка 2, входными данными будут являться, во-первых, сама модель старого образца и, во-вторых, данные пользователя, т.е. это может быть новый УФО-элемент или номер удаляемого УФО-элемента и т.п.. Что касается выхода, то здесь будет, конечно же, модель нового образца и отделенная от нее библиотека (собственно цель всего приложения), но также приложение будет отчитываться перед пользователем за время 13 проведения какой либо операции с библиотекой нового типа, этому соответствует выходная связь «время выполнения операции».
4.Модуль работы с библиотекой нового типа Данный модуль содержит функции для обработки библиотеки нового типа, т.е. функцию удаления, добавления, выборки и функцию удаления УФО-элемента по идентификатору.
Рис.3. Модуль обработки библиотеки нового типа
Как видно из рисунка 3, на входе каждой из функций присутствует связь «данные пользователя», эта связь будет соответствовать, например, для функции добавления элемента – новый УФО-элемент, для функции удаления элемента по идентификатору – идентификатор и т.д. На выходе каждой из функций присутствует рабочая информация, направленная в библиотеку, т.е. для функции добавления – это новый УФО-элемент, для функций удаления – это соответствующий запрос на удаление элемента и для функции выборки – это запрос на выборку элемента. Помимо основных связей на выходах каждой функции присутствуют дополнительные связи «время начала операции» и «время конца операции», которые соответственно нужны для отслеживания времени выполнения соответствующих операций, данные связи далее направлены в модуль анализа скорости выполнения операций с библиотекой нового типа.
5. Добавление элемента в библиотеку Как видно из рисунка 6, на входе имеет место связь «данные пользователя», в данном случае эта связь несет в себе как бы сам УФО-элемент. Концептуальная модель функции помещения элемента в библиотеку представлена на рисунке 4.
Рис.4. Функция добавления элемента в библиотеку
Итак, при попадании в функцию из данных пользователя формируется УФО-элемент, после чего (см.рис.4.) элемент попадает на анализ его входящих и выходящих связей. Далее элемент отправляется на распознавание типа и вида его деятельности, после этого УФО-элемент анализируется на содержание в нем дочерних элементов, если элемент не содержит дочерних элементов, то он отправляется в библиотеку, иначе родительскому элементу присваиваются идентификаторы дочерних элементов, и он отправляется в библиотеку, а дочерние элементы отправляются на повторный анализ, и так до тех пор, пока весь УФО-элемент не будет разбит на составляющие. В итоге каждому родительскому элементу присваиваются идентификаторы дочерних элементов (если они есть) и с этими данными элементы отправляются в определенные для своего типа места в библиотеке.
6. Выборка УФО-элемента
При выборке УФО-элемента, в составе входящей в данную функцию связи «данные пользователя» входит информация о свободных портах того места диаграммы, куда подставляется УФО-элемент, эти данные анализируются на тип нужного элемента (см.рис.5.)
Рис.5. Функция выборки УФО-элемента
Далее в библиотеку отправляется запрос на выборку элемента нужного типа, и при его поступлении элемент, анализируется на структуру, т.е. проверяется на наличие в нем дочерних элементов путем проверки наличия идентификаторов дочерних элементов, которые присваивались элементу при его попадании в библиотеку (см. предыдущий раздел). Далее если у элемента нет дочерних элементов, то он направляется в модуль вычисления процентного соответствия свободным портам и результат выводится пользователю. Но если среди параметров элемента обнаружены идентификаторы дочерних элементов, то отправляется запрос в библиотеку на выборку элемента по идентификатору и после его получения элемент собирается воедино и отправляется на вычисление процентного соответствия свободным портам.
Список литературы
1. Маторин С.И., Попов А.С., Маторин В.С. Моделирование организационных систем в свете нового подхода «Узел-Функция-Объект». //НТИ. Сер.2. №1. М.: ВИНИТИ, 2005. С.1-8.
2. Маторин С.И., Жихарев А.Г. Организация библиотек в CASE – инструментарии моделирования бизнеса «UFO - toolkit» Материалы VII Международной научно – практической конференции «Компьютерные технологии в науке, производстве, социальных экономических процессах»: Сб. научных трудов. Ч.3. – Новочеркасск: ЮРГТУ(НПИ). 2006. С. 23-28.