Диссертация (1152223), страница 41
Текст из файла (страница 41)
Таким образом, любое внешнеесобытие для элемента декомпозиции на любом уровне иерархии должно либо «быть хорошоопределённым» внутренним для другого элемента декомпозиции, либо внешним для всей системы. Речь идёт о законе «сохранения событий» – в ходе декомпозиции не должны потерятьсявнешние события и их обработчики.Минимальная связность. Связность есть характеристика, определяющая, как работы,сгруппированные в одном подпроцессе, связаны с друг другом по данным [174].
По Веберукритерием низкой связности является условие, что мощность множества входов системы меньше или равно мощности суммы входов подсистем, образующих нижний уровень [155]. Ещё одна интерпретация связности предполагает измерение прочность связи между отдельными работами, основной упор делается на анализ потока управления [202]. Другая трактовка предполагает, в отсутствии связности два подпроцесса не имеют общих данных и не оказывают влияниядруг на друга [203] [204].
В модели процесса входы рассматриваются как элементы данных, поэтому связность трактуется как количество связей между элементами данных, образующихвходы разных процессов [173]. Дадим наше определение, подпроцесс является слабо связным,если переменные состояния разных процессов взаимонезависимы.Максимальное сцепление.
Процесс полагают максимально сцепленным, если набор его158выходов включает все выходные переменные, затронутые входными переменными. Добавлениелюбого другого выхода в набор не расширяет набор входов, от которых зависят существующиевыходы, нет других выходов, которые зависят от входа [173]. Каждый входной объект данныхэтого подпроцесса не является входным для любого другого подпроцесса на том же уровне модели [171]. Последнее определение подозрительно напоминает связность. Другая формулировка постулирует, что для каждого из подпроцессов, все его выходы зависят от входов. Этоозначает, подпроцесс получает все необходимые данные на входе, других промежуточных источников данных нет. Дадим новое определение, подпроцесс имеет сильное сцепление, если всеоперации, образующие данный подпроцесс, воздействуют только на переменную состоянияданного процесса, отсутствует их воздействие на переменные других процессов.Обратим внимание, часть определений, рассмотренных выше, опираются на анализ данных, а другая на поток управления.
Критерий минимальности и минимальной связности, по сути совпадают, оба постулируют взаимонезависимость переменных состояния одного уровнядекомпозиции.Потоки управления и данных в контексте онтологии Бунге-Ванда-ВебераПопытаемся определить суть понятий поток данных и поток управления, связать их сконцептами онтологии Бунге-Ванда-Вебера. Информационным потоком часто называют физическое перемещение информации от одного сотрудника предприятия к другому или от одногоподразделения к другому [205]. Обратим внимание, что такое понимание пришло к нам из бумажного документооборота, где документ совершал «физическое» перемещение. В электронном документообороте объект может быть неподвижен, тогда как разные участники получают кнему доступ и, возможно, изменяют его. Рассмотрим систему, образованную одним неделимымобъектом.
В результате внешнего воздействия, в нем запускается последовательность трансформаций, причём в течение некоторого времени он не взаимодействует с другими объектами.Поток, который связывает две последовательно исполняемые операции и переносит результатот уже завершённой операции на вход следующей или внешнему потребителю мы будем трактовать как информационный. Поток, который связывает две последовательные операции и, темсамым определяет очёредность их исполнения мы будем называть потоком управления. В рассмотренном примере потоки данных совпадает с потоком управления.
Мы будем говорить, чтопоток управления образован «движением» информационного объекта, подразумевая его движение между операциями процесса, хотя «физического» перемещения этого объекта нет.Теперь рассмотрим две взаимодействующие системы, каждая из которых образованна однимнеделимым объектом, причём оба независимы друг от друга и не имеют общих элементов данных.Как показано на рисунке 3.18, под действием внешнего события первая из систем переходит в не-159стабильное состояние, начинается последовательность трансформаций, в результате произойдётцепь внутренних событий, отображающих последовательность смены состояний первого объекта.Последовательность трансформаций продолжается до тех пор, пока не будет достигнуто очередное стабильное состояние, которое рассматривается как внешнее для второй из систем и запускаетв ней последовательность трансформаций.
От первой системы ко второй посылается оповещение.Поскольку объекты независимы, информационного потока между системами нет, следовательно,поток управления существует, но потока данных нет. Следует отметить, что, если бы объектыобеих систем содержали общие элементы данных, между системами существовал и поток данных.СостояниеПотоки управления иданных совпадаютОбъектОбъект11ТрансформацияСостояниеСостояниеВнешнее событиеСобытиеТрансформацияПотокуправленияОбъектОбъект22Внешнее событиеСобытиеРисунок 3.18 - Потоки управления и данных процессаИсточник: составлено автором.Теперь мы можем сделать ряд важных выводов.
Во-первых, поток данных образуется врезультате последовательной смены состояний информационного объекта, который являетсяпеременной состояния этого процесса, а не в результате физического перемещения информационного объекта, как, например, в мире бумажного документооборота. Во-вторых, поток управления отображается событиями процесса.
В-третьих, внутренние события соответствуют случаю, когда оба потока управления и данных существуют, мы будем говорить, что поток управления образован «движением» информационного объекта вдоль процесса. Про внешние события этого утверждать нельзя, если объекты, образующие взаимодействующие системы, независимы друг от друга, то потока данных между ними нет, но если они содержат общий элементданных, то возникают оба и поток управления и данных. В-четвертых, пусть есть две последовательные операции процесса, которые не имеют общих данных, так что они связаны потокомуправления, а потоков данных между ними нет. В этом случае, каждую из операций следуетрассматривать как изолированную независимую систему. В-пятых, если аналитик наблюдаетсмену объекта управления процесса, он может с уверенностью говорить о разбиении сквозногопроцесса на подпроцессы.Сцепление и связность модели процессаВ рамках программной инженерии сцепление (coupling) и связность (cohesion) принятосчитать основными характеристиками качества проектируемой программной системы.
Они были впервые введены В. Стевенсом, Г. Майером и Л. Констанэном [206], их использование для160анализа бизнес-процессов было предложено Г. Каляновым [174]. Поскольку критерии декомпозиции процесса, предложенные Я. Вандом и Р. Вебером [172] и данных, разработанные Д. Муди[187] ссылаются на эти характеристики, рассмотрим эти критерии, постараемся связать их с потоками управления и данных процесса.Сцепление (coupling) определяет степень взаимозависимости отдельных работ, образующих отдельную операцию, или взаимозависимость операций, образующих процесс [174]. Чтобылучше понять суть понятия сцепление по данным, представим себе два программных модуля,которые состоят из сегментов кода и данных каждый.
Можно предположить несколько вариантов взаимного влияния этих модулей, смотри рисунок 3.19:1.сегмент кода одного модуля оказывает влияние на сегмент кода другого. возможны дваварианта:первый модуль изменяет код второго модуля, возникает коллизия;первый модуль влияет на второй, но не изменяет его, например, синхронизирует выполнение.2.сегмент кода первого модуля оказывает влияние на сегмент данных сразу обоих модулей,так что возникает коллизия – сегмент данных второго модуля испытывает влияние сразу двухпрограмм;3.сегмент кода первого модуля оказывает влияние на сегмент данных сразу обоих модулей,как в предыдущем случае, отличие в том, что сегмент данных второго модуля имеет внутреннюю структуру, так что оба модуля могут обращаться одновременно к разным элементам этойструктуры, не будут мешать друг другу;4.сегмент кода первого модуля оказывает влияние на внешние глобальные данные второгомодуля, так что возникает коллизия – внешние данные второго модуля испытывает влияниесразу двух кодов;5.сегмент кода первого модуля оказывает влияние на данные на внешнем носителе, причёмпервый модуль имеет доступ к этим же данным, так что возникает коллизия.Модуль 1Сегмент кодаМодуль 2Сцепление посодержимомуСегмент кодаСцепление поПростой элем.
данныхСегмент данныхСегмент данных- данными поСоставной элем. данных - образуСцепление по общей областиСегмент глобально доступных данныхРисунок 3.19 - Сцепление по даннымИсточник: составлено автором.Теперь рассмотрим «классическое» представление о сцеплении данных [174].Сцеплениепо содержимому, если одна работа имеет доступ и ссылается внутрь другой работы. Мы можем161интерпретировать эту ситуацию, как одновременный доступ двух операций к одному общемуобъекту данных.
В программной инженерии рассматривается как нежелательный вариант, поскольку противоречит принципу модульности, т.е. представления процесса в виде «чёрногоящика».1.Сцепление по общему доступу к глобальным данным очень напоминает предыдущий ва-риант с тем отличием, что две операции разделяют доступ к общей глобальной переменной.Например, процесс и вложенный подпроцесс имеют общий доступ к переменным родительского процесса.