Pull to refresh

Заблуждения аналитика

Reading time8 min
Views8K

Заблуждение первое: аналитик путает высказывание в логике высказываний с высказыванием в логике предикатов


Если вы сказали, что у табуретки 4 ножки, то вы сделали простое высказывание. Если вы сказали, что любая табуретка имеет 4 ножки, — это высказывание не является простым. Это высказывание выполнено в логике предикатов, в которой есть возможность говорить об общих свойствах объектов одного множества.


Первая ошибка связана с тем, что аналитики не умеют разделять эти высказывания. Допустим, что аналитик нарисовал диаграмму в нотации BPMN: два квадратика, связанных друг с другом стрелкой. Первый квадратик он назвал "закрепить заготовку в станке", второй квадратик он назвал: "выточить деталь". При этом аналитик сказал: после операции "закрепить заготовку в станке" следует операция "выточить деталь". Что он имел ввиду? Он имел ввиду, что после операции типа "закрепить заготовку в станке" следует операция типа "выточить деталь". То есть, он построил высказывание в предикатах первого порядка. Однако, аналитик путает простые высказывания с высказываниями в логике предикатов и думает, что он сделал простое высказывание.


Следствие из первого заблуждения: в ИТ отрасли появился костыль, прикрывающий эту ошибку. Этот костыль — слово экземпляр. Когда вы слышите слово "экземпляр чего-то" из уст аналитика, знайте, он — путает простые высказывания с высказываниями в логике предикатов.


Заблуждение второе: аналитик не понимает, что такое тип объектов и чем он отличается от класса объектов


Для подавляющего количества случаев, с которыми работает аналитик, класс — это обычное математическое множество. Множества строятся человеком для разных целей. Одна из них — объединение объектов по общим признакам. Например, все, кто вскармливаются молоком, называются млекопитающие. Признак, или набор этих признаков, с помощью которых происходит классификация объектов, называется типом. Тогда класс объектов, объединенный одним набором признаков, связан с типом (набором признаков). Некоторые множества не обладают общим признаком и задаются перечислением их элементов. Аналитик, не различающий класс и тип, часто путает слова: экземпляр и элемент. От такого аналитика часто можно услышать: "экземпляр класса", с помощью которого он пытается указать на объект — элемент этого множества. Он путает два тезиса: "экземпляр типа" и "элемент множества". Экземпляр типа слон — это слон (часто пишут: экземпляр слона, пропуская слово тип). Экземпляр типа класс — это класс (пропуская слово тип, получаем: экземпляр класса). Но аналитики, путающие типы и классы, могут сказать экземпляр класса, но иметь при этом ввиду не класс, а его элемент. Усугубляет эту ошибку созвучие слов "экземпляр" и "элемент" и ООП, в котором тип объектов назван классом.


Заблуждение третье: непонимание того, что такое атрибут


Зачастую аналитик думает, что атрибут — это то, что принадлежит типу объектов. Например, создав таблицу "деревья", моделирующую тип объектов "деревья", он создает атрибут "высота" и считает, что этот атрибут принадлежит этому типу. На это наталкивает его структура реляционной БД, в которой понятие "тип" связано с таблицей, а понятие "атрибут" связано с названием колонки в этой таблице. Но в предметной области термин "атрибут" имеет совершенно иное значение. Если тип — это набор признаков, позволяющих из множества объектов отобрать те из них, которые удовлетворяют этим признакам, то атрибут — это множество таких наборов. Тип создан для того, чтобы выделять из множества объектов его подмножество, атрибут — чтобы делить множество объектов на не пересекающиеся подмножества со своими значениями. Если проводить аналогию, то типу соответствует значение атрибута. При этом атрибут никак не связан с типом. Атрибут — это отдельный способ классификации объектов, не связанный с типом. Однако, можно объекты одного типа разделить на группы в соответствии со значениями атрибута. И тогда рождается то представление, которое есть у большинства аналитиков: атрибут принадлежит типу. Правда, высота у деревьев — это тот же атрибут, что и высота и зданий? В реляционной модели — это разные атрибуты, в OWL — один.


Про атрибуты рекомендую посмотреть лекции


Заблуждение четвертое: свойство не связано с объектом


Родной язык нисколько не помогает нам строить модели предметных областей. Например, когда я говорю, что машина белая, в сознании аналитика возникает объект с приклеенным к нему стикером, где написано название свойства: белый. Однако, как мы выяснили: ни атрибут, ни его значение никак не связаны с типом. Значение атрибута — это один из способов классификации четырехмерного пространственно-временного объема наравне с типом. Тип классифицирует выбранный четырехмерный пространственно-временной объем как машину, значение атрибута классифицирует этот объем как белый. Соединив две точки зрения, мы получаем, что, с одной стороны, выбранный объем можно классифицировать как машину, с другой стороны — как белый. Но белый при этом не является свойством машины, как и машина не является свойством белого. Машина со стикером на борту — это образ, который заставляет нас думать, что один из методов классификации является более значимым, чем другой. Это приводит к коллизиям, с которыми знакомы все аналитики: начинаем дорабатывать модель, и то, что раньше казалось значением атрибута, теперь надо сделать отдельным классом, то, что раньше моделировалось полем в таблице, теперь надо выделить в отдельную таблицу. Все сталкивались с этим, но никто не понимает, в чем причина. А причина в том, что аналитик до сих пор пользуется представлениями о стикере, приклеенном к объекту. Чтобы побороть в себе привычку так мыслить, я использовал следующий прием: я учился лепить стикер "машина" на свойство "белый". Попробуйте, это занятно.


Заблуждение пятое: "такой же" иногда значит "похожий"


Часто принадлежность двух объектов одному типу, принимается аналитиками за их идентичность. Кажется, что такое невозможно, но я постоянно сталкиваюсь с подобной коллизией. Например, если аналитику показать два похожих велосипеда, он не задумываясь скажет, что это — два разных объекта, но если ему показать две похожих операции, он уже не будет столь быстр с ответом и, скорее всего, скажет, что все зависит от точки зрения. Если же аналитику показать два похожих друг на друга свойства, например, показать два белых, то в этом случае аналитик не будет сомневаться ни секунды и скажет, что это — идентичные свойства.


Идентичным для объектов, свойств и операций являются признаки, которые их объединяют, но не сами объекты, свойства или операции. Аналитику надо научиться понимать разницу между типом объектов, свойств и операций и объектами, свойствами и операциями данных типов. Тогда он сможет делать следующие запросы: покажи мне информацию о всех операциях типа "упаковать деталь в контейнер", совершенных с 18-00 по 19-00 в данном цехе. Но аналитик почему-то тип операций называет операцией, а операции данного типа — экземплярами этой операции, и поэтому в запросе он вместо информации об операциях одного типа просит дать информацию о неведомых зверях: каких-то экземплярах операции.


Если с экземплярами операции как-то можно справиться (в смысле можно закрыть глаза на нерусский язык, которым пользуется аналитик, когда произносит "экземпляр этой операции"), то со свойствами такой номер не пройдет. Если идентификация операции в бизнес-анализе связана со словом "экземпляр", то идентификация свойства невозможна в принципе! Я долго пытался понять, в чем причина этого, и единственную подсказку я получил в психологии. Оказывается, первобытный человек, различая объекты, не различал действия и свойства. Для него вчерашний поход на охоту был идентичным походу сегодня. То есть физически идентичным, потому что в сознании первобытного человека время текло циклично, а не линейно, как сейчас.


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


Заблуждение шестое: активность часто путают с деятельностью


Деятельность предполагает наличие разумного актора, цели, инструмента деятельности, объекта деятельности, акта деятельности, результата деятельности. Весь этот набор как калька скопирован с нашего языка, в котором есть подлежащее, сказуемое, дополнение. Мы уже давно не одушевляем Солнце или машину, но пользуемся языком, в котором для каждого изменения в мире должен быть найден актор, ответственный за это изменение. Например, если речь зашла о свечении, то должен быть тот, кто светит, например, Солнце, если едет, то ответственным за езду является машина. Но есть другой метод моделирования изменений. Этот метод связан с понятием активность. Активность — это описание изменений физического мира, в котором нет актора.


Например, высказывание "машина едет с 18-00 по 19-00" воспринимается аналитиком как объект, совершающий движение. При этом аналитик думает, что машина реально что-то совершает, вплоть до того, что она прикладывает усилия к перемещению! Такая картина навязана языком. Однако, с точки зрения описания активности, есть дорога, машина, наблюдатель, атмосфера и прочие участники движения. В такой парадигме машина не едет, она участвует в движении наравне с другими участниками движения.


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


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


С точки зрения моделирования активности есть факт: дорога, машина, атмосфера, наблюдатель, который сообщает нам, что машина едет по дороге. Функция движения — это пространственно-временной объем, включающий в себя все перечисленное. С точки зрения активности машина является частью функции движения наравне с другими ее частями.


Итоги


Итак, подведем итоги.


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


Физический смысл свойства для аналитика — это стикер с названием свойства, приклеенный к объекту.


Физический смысл операции для аналитика — это фильм, в котором кто-то что-то делает.


Если есть свойство, но нет объекта (светло), то к чему лепить стикер? Тогда стикер можно налепить на пространство в целом и сказать, что свойство — это интерпретация пространства, сделанная наблюдателем.


Если есть операция, но нет актора (взрыв сверхновой), то кто это делает? Аналитик говорит: поделим операции на те, у которых есть актор (бизнес-операции) и те, у которых его нет (естественные операции). Аналитик полагает, что во вселенной есть что-то, отличное от естественных операций. Далее он закрепляет правило, что в любой бизнес-операции должен быть актор, даже, если это — неодушевленный объект типа информационной системы, или принтера. Таким образом, выкрутившись из одной коллизии, аналитик создает другую: неодушевленного актора. Кроме того, не понятно, кого назначить актором, когда претендентов на его место больше одного. Решение этой проблемы есть. Оно в том, чтобы отказаться от поиска акторов, и, вместо моделирования деятельности заняться моделированием активности. А в модели активности пусть каждый сам решает, кто актор, а кто нет.


Получается, что объект, свойство, операция — все это разные трактовки пространственно-временных объемов, сделанные наблюдателем. Этот тезис был положен в основу парадигмы моделирования, предложенную Крисом Партриджем и Мэтью Вестом, на основе которого создавался стандарт моделирования предприятий непрерывного цикла ИСО 15926.


Модель трактовки четырехмерного пространственно-временного объема я предложил в своей работе.


Понять ее за один раз невозможно, говорят, что понимание приходит с четвертого прочтения. По идее после понимания этой статьи должно прийти понимание неразделимости пространства и времени, а также умение представлять их вместе.

Tags:
Hubs:
+3
Comments78

Articles

Change theme settings