Диссертация (1145120), страница 46
Текст из файла (страница 46)
на рис. 5.5.280бавРис. 5.5. Примеры справочников типов в ОРГ-Мастере: а — справочник типов позиций, б — справочник типов связей, в — справочник свободных атрибутовИз списка типов позиций можно выбирать подходящие типы, а при отсутствии таковых — создавать новые. Этот список на самом деле являетсядеревом по отношению тип/подтип, каждый элемент которого (конечный иузловой) обязательно имеет текстовое значение (и, возможно, связанную сним иконку).Справочник связей используется при связывании позиций классификаторадруг с другом: при создании проекции с ней связывается один или несколькотипов связей, и для каждой вновь создаваемой связи назначается некоторый281тип из этого списка. Далее, тип связей используется при фильтрации в процессе разработки и генерации отчётов по модели.Третий вид типов в ОРГ-Мастере — это свободные атрибуты, которые являются повторно используемыми перечислимыми типами.
Свободный атрибут можно выбирать в качестве типа у атрибута классификатора, выбирая длякаждой позиции классификатора подходящее значение из списка допустимых, связанных с этим свободным атрибутом.В языках программирования уже с 70–80-х годов прошлого века сталопринято использовать строгую типизацию переменных. Однако в средствахмоделирования ситуация с типизацией более гибкая — так, например, атрибуты в диаграммах классов UML могут не иметь типов, и в общем случае этоне является ошибкой59. Необходимость строгой типизации, и в общем случае— однозначно заданных связей между различными элементами языка моделирования, типами диаграмм и пр., на наш взгляд, не должна быть чрезмерной, так как этот подход, с одной стороны, конечно, гарантирует корректность спецификаций60, но с другой стороны, делает процесс моделированиянегибким, неудобным и очень громоздким61.Типы в ОРГ-Мастере используются, во многом, как метки при составлениивыборок из модели при разработке отчётов, и в связи с этим строгий контроль не требуется.
Но в новой версии ОРГ-Мастера они используютсявнешними графическими редакторами и различными сторонними плагинами,которым нужно точно указать, какие именно элементы следует отображать и59Хотя при использовании UML совместно со средами разработки ПО (программногообеспечения) (то есть с поддержкой генерации кода на Java, C# и пр.) это, безусловно,ошибка, о которой UML-пакеты обычно сообщают пользователям.60Достоинства строгой типизации при моделировании подробно обсуждаются, например,в работе [418].61Возможны также так называемые «ленивые» подходы проверки корректности спецификаций — то есть ошибки допускаются, поскольку это могут быть не ошибки, незавершённые спецификации, и в определённый момент производится пакетная валидация/верификация спецификаций (примеры см.
в работах [7], [70]).282связывать на тех или иных диаграммах. Причём неточности здесь становятсяпричиной ошибок при работе этих средств.Повышенный (по сравнению с прошлой версией языка) уровень строгоститипового контроля введён в ОРГ-Мастере для того, чтобы поддержать графические редакторы. Однако есть тип «Не задан», который проставляетсядля созданной позиции/связи автоматически и, фактически, позволяет элементам не иметь конкретного значения типа, хотя это считается не очень хорошим стилем.
Тем не менее, это удобно, поскольку такой подход позволяет,например, выполнять процедуру множественного импорта элементов классификатора из сторонних источников — баз данных, таблиц Microsoft Excel ит.д.; после выполнения такого импорта в модели одномоментно появляетсямного разных позиций, и требовать от аналитика сразу же назначить каждому из них нужный тип не целесообразно, так как в этот момент не ясно, какой у кого должен быть у данных элементов модели, останутся ли все ониили некоторая их часть в данном классификаторе и т.д.; соответствующиетипы лучше проставить позднее. В пакете ОРГ-Мастер предполагается реализовать валидацию модели на предмет наличия в ней типов «Не задан».Ещё одной новой чертой является разделение множества типов, связываемого с классификатором, на базовые и вспомогательные типы.
Каждая позиция классификатора должна иметь строго один базовый тип и может такжеиметь несколько вспомогательных. Так, если в один классификатор попалиединицы оборудования и виды должностей сотрудников (например, есликлассификатор описывает целиком какой-то департамент компании, и этотдепартамент небольшой, то может оказаться целесообразно создать одинклассификатор для такого департамента и поместить туда все62), то два этихвида позиций должны иметь различные базовые типы. Вспомогательные ти62Моделирование деятельности небольших предприятий (и, соответственно, разработкасоответствующих КИТ-проектов) является отдельной темой. На практике оказывается,что в этом случае целесообразно использовать несколько иные средства и подходы, в отличие от тех, которые используются в больших КИТ-проектах.283пы используются таким же образом, как и пиктограммы позиций в прежнейверсии языка; кроме того, они позволяют строить сложные и нелинейныеклассификации — например, элемент организационной структуры предприятия может быть департаментом или должностью сотрудника.
Аналогичнаявозможность в объектно-ориентированном проектировании реализуется спомощью множественного наследования. На рис. 5.6 приведён пример классификатора «Городские процессы», у которого есть один базовый тип и двавспомогательных («Доп. тип1» и «Доп. тип2»). Возможность задать базовыйтип для классификатора есть всегда по умолчанию, вспомогательных типовможно заводить столько, сколько требуется63.Рис. 5.6 Базовые и вспомогательные типы классификаторов ОРГ-МастераПредложенный механизм работы с типами, безусловно, не являетсянадёжным, в отличие, например, от поддержки типизации в языках программирования. В последнем случае для программы компилятор строит общеедерево, в рамках которого осуществляется статический контроль корректности, в том числе и контроль правильного использования типов.
Репозиториймодели до некоторой степени является аналогом такого дерева, но слабыманалогом, позволяющим пользователю ошибаться, например, неправильновыбирать тип позиции (список допустимых типов для выбора может бытьбольшим). В программе на языке программирования такая ошибка выявляется при компиляции: если пользователь начинает присваивать переменной це-63Эти типы являются атрибутами классификатора, и в свойствах классификатора можнозадать диапазон выбора. Далее, для каждой позиции эти атрибуты могут принимать значения из этих диапазонов.284лое значение, но он определил её как символьную, то компилятор диагностирует ошибку.
Следует отметить, что типизация в ОРГ-Мастере используютсяне так строго, как в языках программирования, поэтому многие ошибки здесьопределяются не автоматически, а «вручную» — например, при генерацииотчётов и диаграмм по модели. Более того, такие проверки моделей (не только в смысле типов) широко используется аналитиками: они ожидают увидетьв отчёте или на диаграмме определённую информацию, и если видят иное,то выясняют причины расхождений. Такой уровень поддержки корректностивполне адекватен в данной ситуации, так как цена ошибки здесь иная, чем впрограммировании.Теперь остановимся на уточнении прагматики языка, то есть на способахего использования. В ходе модернизации ОРГ-Мастера прагматика языкамоделирования была уточнена путём выделения ролей пользователей этогоязыка (программных средств) и описания сценариев (режимов) их работы.Для уточнения режимов использования программного продукта необходимо разделить уровни моделирования и ввести некоторые дополнительныепонятия.Язык моделирования ОРГ-Мастер является метаязыком — моделированиеархитектуры предприятия производится не в терминах этого языка, с помощью классификаторов и проекций, а выполняется посредством дополнительных понятий и сущностей, таких как «Цель», «Процесс», «Операция», «Организационная роль».
Последние задаются методологией ОРГ-Мастера, и вкаждом конкретном проекте они могут уточняться и расширяться. Таким образом, достигается гибкость и компактность языка моделирования, а такжегибкость средств бизнес-моделирования ОРГ-Мастера. Последние часто меняются в связи с бурным развитием области EAM, а также уточняются и детализируются в связи с использованием EAM в различных узких предметныхобластях (государственных корпорациях, правительственных органах, маломбизнесе и т.д.).285Были выделены следующие роли (сценарии) для использования языкаОРГ-Мастер (они также совпадают с ролями пользователей программныхсредств ОРГ-Мастер): «Методолог» — разработка и изменение опорных моделей; «Архитектор» — выбор и адаптация опорной модели при разработкеконкретного КИТ-проекта; «Аналитик» — разработка КИТ-проекта: активная работа с базовымпакетом ОРГ-Мастера, то есть создание позиций, связей, отчётов и т.д.; «Клиент» — ввод данных в модель ОРГ-Мастера посредством диаграмм (то есть с помощью внешних редакторов) в рамках каркаса модели, созданного в режиме «Аналитик»; данная роль предназначаетсядля работников компаний, для которых разрабатывается КИТ-проект,хотя, при наличии квалификации и желания, они также могут работатьв рамках любой из перечисленных выше ролей.В настоящий момент в новой версии пакета ОРГ-Мастер поддержанытолько три режима — «Методолог», «Архитектор» и «Аналитик», причёмпервые два пока объединены в рамках одних и тех же функциональных возможностей ОРГ-Мастера и различаются только идеологически, ролево.Теперь остановимся на новых средствах моделирования поведенческих(процессных) моделей.
Для них было предложено использовать простое подмножество BPMN. Дело в том, что данный язык очень большой и пытаетсяохватить различные случаи использования формальных моделей бизнеспроцессов. Как минимум, существует два явно выраженных различных варианта использования BPMN: разработка исполняемых моделей и иллюстративные модели, создаваемые как примеры. Каждый вариант использованияBPMN нуждается в своём наборе возможностей языка, то есть используетнекоторое его подмножество, при этом часто по-своему трактуя те или иныеконструкции (например, существует много вариантов значений для такихконструкций, как pool, lane, participant).286До реализации BPMN в ОРГ-Мастере аналитики использовали классификаторы и проекции для моделирования поведения.