habrahabr

Физические и функциональные объекты (Продолжение)

  • суббота, 3 января 2015 г. в 02:10:47
http://habrahabr.ru/post/247225/

Описание сущего


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



Природа пространства-времени


Начнем с того, что воспринимаемый нами мир – это четырехмерное пространство-время. Но не то пространство-время, которое используют математики в своих рассуждениях. Скорее это то пространство, которое используют физики. Разница в том, что в физическом мире нет точек. Есть объекты, которые с точки зрения наблюдателя можно считать точечными. Но при ближайшем рассмотрении эти точки могут рассматриваться как бесконечные пространства. Мы часто не различаем воспринимаемый нами мир и математическую абстракцию, созданную для описания этого восприятия. В абстракции, созданной для описания воспринимаемого мира, есть понятие точка. В реальном мире нет точек. В этом огромная разница между моделируемым миром и его моделью. В неразличении этих двух сущностей кроется причина части холиваров, возникших на основе предыдущей статьи. Например, мы не способны воспринять срез пространственно-временного континуума поперек временной оси, как нам предлагает поступить ИСО 15926, для определения понятия событие. Поэтому далее я продолжу рассуждения, не отвлекаясь на такие понятия как точки, срезы пространственно-временного континуума и прочие абстрактные объекты. Мы будем работать только с реально воспринимаемыми нами объектами 4-Д пространства-времени.

Определение границ экстента


В 4-Д пространстве-времени нами выбирается любой произвольный объем (экстент). Этот экстент может иметь связанность, (как например — камень), или быть несвязанным, (как например, школа, если ее построили, затем разрушили и вновь построили на новом месте). Для изображения экстентов часто используют диаграмму, на которой три пространственных координаты слиты в одну – вертикальную ось, а координата времени представлена в виде оси абсцисс. В этом представлении связанный объект выглядит так:



А несвязанный так:



Первый шаг в исследовании экстента


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

Объектом – значит назовем его объектом,



Событием – значит назовем его событием,



Операцией, — значит назовем его операцией.



Назвав экстент событием, мы описываем его как событие, имея ввиду то, что ширина экстента во времени равна с точки зрения рассказчика нулю. Назовем его объектом, — значит нам придется описать геометрические размеры экстента, а временные уже не будут иметь значения, но могут быть описаны дополнительно. Назовем операцией, — придется указать временные границы, потому что операция описывается началом и концом операции во времени, а пространственные уже не имеют значения, но могут быть описаны дополнительно.
Далее мы делимся своим представлением об экстенте с другими субъектами. Начинаем описание экстента только с фактов, поскольку факты – это описание экстента с точки зрения его физических свойств. Если мы начинаем описание сразу с субъективной точки зрения, то это будет субъективное описание, лишенное фактической основы.
Факты и их трактовка
Мы часто сталкиваемся с описание субъективной оценки вместо описания фактов. Например, на собеседовании кандидат сообщает нам информацию: мой шеф был настоящий труженик! Этот кандидат забывает описать факты, сразу переходя к описанию субъективного восприятия этих фактов. Понятно, что не все будут согласны с такой оценкой, и потому лучше всегда придерживаться фактов и только фактов, трактовку которых отдавать на откуп слушателю. После того, как факты описаны и изучены, можно переходить к трактовке этих фактов.

Второй шаг в исследовании экстента


Субъективная трактовка экстента – это описание его с какой-то точки зрения. Например, экстент с какой-то точки зрения может быть молотком, а с другой – гвоздодером. Молоток и гвоздодер – это субъективные описания одного и того же экстента — железяки. Понятно, что точек зрения на экстент — множество. Поэтому у одного физического объекта может быть множество трактовок.

Трактовки можно объединять, вычитать, находить пересечения. Например, если у события есть две трактовки: одна — победа и другая — поражение, то существует объединение этих трактовок: победа и поражение.



Объединение трактовок используется при описание функций предприятия. Но об этом я расскажу после того, как мы классифицируем описания экстентов (не в этой статье).

Синтез и анализ


В процессе исследования предметной области может оказаться так, что с точки зрения целей моделирования, границы экстента выбраны неверно. Тогда субъект выделяет другие границы исследуемого экстента и повторяет процесс его описания, а затем дает субъективную оценку этому экстенту. Может так случиться, что одному субъекту удобно описывать экстент как событие, а другому – как операцию. Тогда возникает конфликт, чем считать экстент? Событием или операцией? На самом деле должна быть возможность рассмотрения экстента и с одной и с другой точек зрения. Такая возможность должна быть зашита в методологию описания предметной области. Например, в ARIS есть возможность на одной диаграмме изобразить экстент как событие, а на другой изобразить его в виде операции. Например, событие сдача готовой продукции на склад при определенной степени детализации может превратиться в операцию сдача готовой продукции на склад. Поэтому то, чем мы считаем экстент, какие методы мы используем для описания этого пространства, — решать нам в зависимости от поставленных целей моделирования. А поскольку каждый экстент помимо того, что может рассматриваться как объект, событие, или операция, имеет множество субъективных трактовок, то моделирование этих точек зрения также должно поддерживаться методологией моделирования предметной области. Сейчас эта возможность в нотациях отсутствует, что заставляет аналитиков использовать некие религиозные соображения, чтобы из множества возможных трактовок выбрать одну. На этом моделирование предметной области заканчивается и это завершает описание нашей картины мира.

События


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

Функциональные события


Это событие, которое отличается от физического наличием точки зрения на него.
Вспомним, как в прошлой статье работу маяка описывает смотритель. Он делит маяк на классы состояний: «Костер тушится» и «Костер разгорается». События между этими состояниями он описывает как «Тушение прекращено» и «Розжиг прекращен».
Описание состояний выглядит так:



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



Из этой диаграммы видно, что состояние и операция — объекты одной природы, потому что и то и другое описывается двумя событиями: началом состояния (операции) и завершением состояния (операции).
Цикличность процессов
Здесь я немного забежал вперед и показал вам диаграммы процессов, которые можно назвать циклическими (состояние системы циклически проходит через состояния одних и тех же классов («потух», «горит»). Но если вы внимательно посмотрите на реальные процессы, то увидите там те же свойства. Например, операцию «Прием заявки» предваряет операция «Ожидание клиента с заявкой». Начинается она с события «Клиент обратился» и заканчивается операцией – «Ожидание приема заявки», которое, в свою очередь, заканчивается событием «Клиент обратился». Сансара, мать ее)).

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



Ночь, улица, фонарь, аптека,
Бессмысленный и тусклый свет.
Живи еще хоть четверть века — Все будет так. Исхода нет.

Умрешь — начнешь опять сначала
И повторится все, как встарь:
Ночь, ледяная рябь канала,
Аптека, улица, фонарь.


Вопрос: промежуточные события на приведенной нами диаграмме, – это физические или функциональные события? Ответить на этот вопрос нам поможет другая диаграмма, на которой те же события имеют совсем другое название:



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



Физическое событие


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

Операции


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

Функциональные операции


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

Первый аналитик нарисовал такую схему взаимодействия:



Второй – такую:



А третий такую:



Все диаграммы правильные, но в них разные названия обозначают разные функциональные операции, принадлежащие одному экстенту. Например, операция «Заплатить деньги» и операция «Принять деньги» — есть две функциональные операции, которые описывают одну физическую операцию с разных точек зрения. Первая точка зрения – это точка зрения субъекта. Вторая точка зрения – это точка зрения изготовителей кофе-машины. Третья точка зрения – точка зрения эстафетной палочки, которая (точка зрения) концентрируется на вопросе, какой актор которого актора ждет. В зависимости от целей моделирования мы используем ту, или иную точку зрения. Если мы моделируем поведение субъекта, — то первую. Если моделируем работу автомата, — то вторую. Если изображаем объективность, то третью. Я говорил, что можно объединять точки зрения. Потренируйтесь в этом самостоятельно.

Физическая операция


Физическая же операция – это экстент, включающий субъекта, который бросает монеты в монетоприемник, работающий автомат по распознаванию монет и счетчик, который наращивается.

Один экстент — разные объекты?


Повторю, что один и тот же экстент может считаться как событием, так и операцией так и объектом. Поэтому можно считать, что временная часть дверной ручки, – это объект, если мы ходим описать ее геометрические размеры, событие, если мы описываем событие «Дверь открылась» и операция, если мы описываем операцию по открыванию двери.

Пересечение экстентов


Есть мнение, что состояние или операция описывается начальным и конечным событиями. Я с этим соглашусь, но с одной оговоркой. Если под событием понимать момент времени (как принято в ИСО), то противоречие возникает при попытке определения точного момента, когда оно произошло. Например, когда точно произошло событие «Куликовская битва»? Нет такого момента. Если же мы предполагаем, что событие – это 4-Д экстент, то получается другое противоречие. Получается, что экстент операции имеет общие части с экстентом событие. И это значит, что описание в виде операции, которая имеет начало и конец, — это лишь приблизительное описание реальности. Вот тут я и соглашусь. Все наши описания – это лишь некие приблизительные модели, описывающие реальные объекты довольно упрощенно. Это упрощение позволяет нам сократить описание до приемлемого уровня детализации, требуемой с точки зрения целей моделирования. В итоге реальность и ее модель соотносятся приблизительно следующим образом:



Иногда протяженность того, что мы называем событие, равно протяженности операции, которую это событие описывает. Примеры придумайте сами.

Способы описания событий


Итак, мы поняли, что один из способов использования событий — это разделение пространства-времени на временные части. Каждая часть – это состояние, или операция, а событие – это условная граница между ними. Есть несколько способов описать событие.

Первый способ описания событий


Полная классификация описаний экстентов пока не дана, и потому на данном этапе можно просто поиграться. Например, события могут быть описаны при помощи граничных состояний. Есть одно состояние системы, есть второе, и оба они описаны. Событие декларируется как переход из одного состояния в другое, что изображают стрелкой на диаграмме состояний. Например, есть состояние помидор зеленый и состояние помидор красный. Переход между этими состояниями и есть событие. Мы прекрасно понимаем, что переход имеет ненулевой временной интервал. Однако, с точки зрения рассказчика ширина этого интервала несущественна. Описание события включает в себя описание двух состояний: помидор зеленый и помидор красный, а также временного интервала, в течении которого произошла смена состояний. Например, в ночь с 5-го августа на 6-е помидор поспел.
Ошибка Партриджа
Именно так и надо было Крису Партриджу в книге Business Objects: Re-Engineering for Re-Use поступить при описании события «Помидор поспел». Он же придумал некое «Сложное событие», которое отличает от простого тем, что оно якобы состоит из простых, но автор не смог это описать ясно. Вот пример из его книги, в которой он приводит диаграмму пространства- времени.



Второй способ описания событий


Другой способ описания события – это описание его как состояния. Например, событие «Розжиг начат» можно описать так: «Смотритель отдыхает».

Что мне не нравится в ИСО 15926


В ИСО 159126 под событием понимается момент времени. И трактовка момента времени следующая: это срез 4-Д пространства-времени перпендикулярно оси времени. То есть, — это вся вселенная в момент времени t. Чем это отличается от определения, данного нами? Во-первых, зачем нам вся вселенная? Мы работаем на ограниченном участке пространства. И одновременность на этом участке определяется нами визуально (на одной полянке), хронометрами (на Земном шаре) и какой-то там теорией относительностью в пределах ближнего космоса. Но, как только мы начинаем разбираться в том, что такое одновременность вообще, мы получаем коллизию и невозможность этого определения. Во-вторых, срез вселенной – это геометрическая абстракция, от которой мы всеми силами пытались избавиться. Ведь то определение, которое дал я, понятно с точки зрения здравого смысла. А то, что дает ИСО, идет не от здравого смысла, а от математической абстракции (ровно то, что и говорил Колмогоров в своем учебнике по геометрии для 6-го класса!) Если принять определение ИСО 15926, то встает вопрос: какой из моментов считать событием? Например, аналитик может поставить вопрос: «Что есть событие «клиент пришел?» Ответ может быть таким: «Это тот момент, когда его макушка пересекла плоскость дверного проема офиса» Вам нравится такое определение события? Мне – нет, потому что я сразу поинтересуюсь, «а что такое макушка?» и «что такое дверной проем?» и так далее. Поэтому ИСОшное определение события перевернутое с ног на голову. Оно включает в себя то, что нам не нужно – всю вселенную, да еще и абстракцию, с которой работать немыслимо! Мое же вполне оправдано, потому что всегда локально (ограничено рамками моделируемого пространства), и понятно.