Продолжаю рассказывать про проекционное моделирование.

Следующая тема, которую я хочу затронуть, — это объяснение, почему мы определили связь в конструкции как 4-Д объект. Напомню, что в проекционном моделировании связь – это общая часть элементов конструкта. Поскольку элементы конструкта – это 4-Д объекты, то связи – тоже 4-Д объекты. То есть, для существования связи между двумя 4-Д объектами должен быть общий 4-Д объем, принадлежащий обоим этим объектам.

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

Пространственные связи


Начнем с простого: пусть объекты связаны общим положением в пространстве или во времени. Это связи типа «справа», «выше», «после», «вместе» и т.д. Для моделирования такого рода связей нам нужно рассмотреть 4-Д пространство, в котором помещены рассматриваемые нами 4-Д объекты. 4-Д пространство играет такую же роль, как и другие 4-Д объекты. Обычно моделирование начинается именно с того, что мы формируем границы модели, то есть, 4-Д пространство, в котором потом размещаем 4-Д объекты. Почему-то про этот самый первый 4-Д объект забывают сразу после его определения. Но именно его свойства позволяют нам описать указанные мной связи.

В строительстве такого рода связи могут возникнуть, когда мы говорим, что крыша будет над зданием, а не под, или рядом. При проектировании процессов такого рода связи могут возникнуть, когда мы говорим, что данная операция следует за предыдущей. Все эти связи – это свойства 4-Д пространства, которое мы создали первым и в которое потом помещаем 4-Д объекты.

Взаимодействия


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

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

Причинно-следственные связи


Еще один тип связи: когда объект, являясь результатом деятельности одной операции, затем используется в другой. Буквально это выглядит так: есть некий 4-Д объем, трактуемый нами как результат, который имеет общие части с первой и со второй операциями. Поскольку операция – это проекция 4-Д объема, то получается, что две операции имеют общий 4-Д объем, интерпретируемый нами как результат первой операции.

Потоки


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

Преимущества предлагаемого определения связи


Вся сила определения связи как 4-Д объема всплывает в кейсах, когда мы начинаем строить иерархические модели композиции и декомпозиции. Когда модели планарные, нет никакой разницы, как определять связь. Но, когда мы меняем точку зрения при переходе на более детальный, или более глобальный уровень, все становится не так очевидно.

Например, можно рассмотреть связь между производителем электроэнергии – ГЭС и потребителем – городом. Если связь 4-Д объект, то на этапе детализации можно «раскрыть» ее и показать, что это ЛЭП. Тогда связь «превратится» в ЛЭП. ЛЭП будет связана одной связью с ГЭС и другой – с городом. Дальнейшая детализация может «раскрыть» уже эти связи. Например, в городе будут выделены подстанции, а в ГЭС – открытый распределительный узел, ЛЭП будет представлена в виде двух цепей, а связь «раскроется» и превратится в вводы цепей. Обратное – тоже верно. Пусть есть множество связей между стыковочным модулем и космической станцией. При генерализации эти связи могут «генерализоваться» до одной связи.

В известных мне стандартах моделирования такого рода преобразования связей не предусмотрены. Есть намек в стандарте EPC, где операции связаны между собой общими событиями. Но «раскрыть» эти события нельзя. По замыслу автора нотации, эти события точно режут время на «до» и «после» операции. Однако, в свое время Что такое событие, или зачем четырехмерная геометрия бизнес-аналитику? я показал, что нет точного деления на «до» и «после». Операции часто «наваливаются» друг на друга, или наоборот, «разъезжаются» во времени. Это становится видно при детализации представления. Такого рода детализация невозможна в нотации EPC, но возможна в проекционном моделировании.

Выводы


Итак, постулат о том, что связь – это 4-Д объект позволяет нам моделировать его теми же способами, что и любой другой объект. Это значит, что связь также можно представить в виде объекта, операции, функции, кучи и тд.

Комментарии (17)


  1. lair
    18.12.2017 11:41

    Следующая тема, которую я хочу затронуть, — это объяснение, почему мы определили связь в конструкции как 4-Д объект. Напомню, что в проекционном моделировании связь – это общая часть элементов конструкта.

    Вам к этому "определению" задали вопросы, а вы их проигнорировали. Ну ладно, продолжим.


    связь – это 4-Д объект

    Так вот. Даже не рассматривая всякие поля и прочие слабые взаимодействия, которые вы, похоже, тоже считаете четырехмерными объектами, возьмем простые жизненные примеры.


    Вот есть корабль, он приписан к порту. "Корабль приписан к порту" — это типичный пример связи между двумя объектами (и если кому-то хочется, оба этих объекта можно смоделировать как четырехмерные). Какому (общему) четырехмерному объекту соответствует эта связь?


    Или вот банку принадлежит офис (офис является собственностью банка).
    Или вот человек арендует сейфовую ячейку в офисе банка.


    Ну или возьмем пример поближе к тематике хабра. Есть два сервера, А и Б, расположенные в двух разных вычислительных центрах, Г и Д, связанные между собой частной сетью В поверх сети общего назначения. С точки зрения модели, В — это, несомненно, связь. Что за четырехмерный объект ей соответствует?


    Таким образом, ваше понятие "связи" не позволяет смоделировать многие существующие в, как вы любите выражаться, реальных задачах отношения объектов. А знаете, почему? Вот ответ:


    В нашем представлении нет способа передать взаимодействие напрямую без посредника. Поэтому любая связь – это 4-Д объект, передающий это взаимодействие. Но, повторюсь, не потому что так устроена природа, а потому что мы так мыслим.

    Вы так мыслите, и ваше представление не позволяет передать отношения между объектами без посредников.


    1. napa3um
      18.12.2017 17:20

      Авторская «4Д-связь» это что-то типа «объекта, расширяемого любыми новыми сведениями, полученными в будущем», если я правильно понял «стиль» мышления автора (понял фобии, результатом которых являются его рационализации, понял его страх перед неизвестностью). Он как бы заранее пытается рационализировать то, что будет известно лишь в будущем. Идея сама по себе не самая плохая, но требует переформулирования изначальной задачи — спроектировать формат хранения любых экспертных данных вне зависимости от прикладной области. Ну и постепенно провести «4Д-объекты» через все проблемы, всплывающие в подобной задаче, и прийти к чему-то типа «фреймов знаний» Минского, эдакой динамической структуры, имеющей возможность выражать совершенно любой тип связей между объектами. Грубо говоря, автор не проектирование школьникам объясняет, а формулирует структуру мозга школьника, потенциально способного понять проект любой «мощности» моделируемых связей. Автор разрабатывает экспертную систему с возможностью логического вывода сведений из неё (на однозначном языке типа Prolog).

      (Комментарий написан на правах графомании и праздных фантазий.)


      1. lair
        18.12.2017 17:25

        Так все равно же не работает. Чтобы выражать "любой тип связей", надо выражать "любой тип объектов", а "любой тип объектов" несводим к четырехмерным объектам.


        1. napa3um
          18.12.2017 17:30
          +1

          Ну, как я понял, «4Д-объект» это что-то типа «бесконечномерного объекта», когда одно измерение является «метаизмерением» (в него можно «набрасывать» любые измерения, узнаваемые в будущем), а остальные три фиксируются как способ перемещения по «метапространству», заданному этими «метаизмерениями». Но это всё очень интуитивная попытка интерпретации текстов, возможно, очень далёкая от мыслей автора.


          1. lair
            18.12.2017 18:04
            +1

            Да вроде нет: "Объектом нашего моделирования будет 4-х мерный объект в пространстве-времени".


            1. napa3um
              18.12.2017 18:04
              +1

              Сдаюсь :).


      1. sand14
        18.12.2017 22:39
        +1

        спроектировать формат хранения любых экспертных данных вне зависимости от прикладной области.

        Так и есть — автор разрабатывает не язык моделирования для конкретной предметной области, а непредметный язык, который, путем ввода DSL-терминов поверх непредметных, предоставит возможность моделировать любую предметную область.
        (Если попытаться найти аналогию, это похоже на языки программирования вроде Ruby, которые благодаря динамической модели и особому синтаксису, позволяют разрабатывать фреймворки с DSL-языками, а уж потом конечные приложения)


        При этом степень "непредметности" этого языка будет минимальна.
        Другими словами, если кирпич — самая крупная единица, которая позволяет смоделировать любую предметную область, то песчинки не нужны, т.к. вначале из них прошлось бы изготавливать кирпичи.


        Перефразируя еще раз — автор решает мини-максную задачу при разработке языка моделирования и определении его терминов.


        Еще это похоже на EAV-модель, которая позволяет определить в реляционной БД любой набор сущностей, не заводя в структуре БД новых таблиц.


        1. napa3um
          18.12.2017 22:48

          Интересно, что в Руби особенного, делающего его столь привлекательным для основы DSL? Чем он принципиально отличается от какого-нибудь Питона или ЖС в этом аспекте? Возражений комментарию особых у меня нет, лишь небольшое подозрение в «если вы овладели молотком, то всё вокруг кажется гвоздями» (мой молоток в этом смысле получился похожим на Пролог, судя по всему, а ваш, вероятно, Руби).


          1. sand14
            19.12.2017 10:58

            Интересно, что в Руби особенного, делающего его столь привлекательным для основы DSL? Чем он принципиально отличается от какого-нибудь Питона или ЖС в этом аспекте?

            Помимо динамической модели — особый синтаксис ("представление модели"), который включает много всего.
            Это и отсутствие скобок при вызове функций, и do blocks, и возможность определения литералов вида :name (эдакое замещение строк-констант и енумов из других языков), и прочее, что по отдельности может казаться мелочью.


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


            Руби был приведен для примера. Естественно, подобных языков много. Например, Crystal.
            В статических языках подобное тоже есть — Nemerle, Cx#.


            1. napa3um
              19.12.2017 11:11

              DSL — это один из способов определения архитектуры приложения (определение ограничений семантики использования сущностей, отражающих прикладную область), и, если отбросить критерии синтаксиса DSL (критерии «красивости» синтезируемого языка для «посторонних»), любой язык программирования общего назначения так или иначе предназначен для построения языка решения прикладной задачи. Ярчайшим примером тут, наверное, будет не Руби (хотя и в его некоторой популярности сомнений нет), не экзотика типа Nemerle или Cx#, а самый попсовый JS с его jQuery (который породил язык селекторов и семантику обработки деревьев, в итоге вошедших в стандарт платформы). Да любой объектный язык предполагает предварительное определение классов прикладной области, с ограничениями их взаимодействия друг с другом.

              (Не возражения ради, а графомании и поддержания беседы для.)


        1. lair
          19.12.2017 02:39

          Так и есть — автор разрабатывает не язык моделирования для конкретной предметной области, а непредметный язык, который, путем ввода DSL-терминов поверх непредметных, предоставит возможность моделировать любую предметную область.

          Любая пока что-то не выходит, я примеры неоднократно приводил.


      1. mayorovp
        19.12.2017 08:50

        Автор просто определил свои объекты как 4-Д объекты и связи как их пересечения, но выводов из своего определения не сделал. Говоря «4-Д объект» автор подразумевает что-то свое, не имеющее отношения к пространству-времени.


        1. napa3um
          19.12.2017 08:52

          Да, я тоже так считаю, потому и решил попытаться реконструировать ход мыслей автора. (Но вышло так себе.)


        1. lair
          19.12.2017 09:30

          Ой ли? Я уже приводил эту цитату: «Объектом нашего моделирования будет 4-х мерный объект в пространстве-времени».


          1. mayorovp
            19.12.2017 09:41

            Говорю же, автор дает формальные определения чтобы были, но выводов из них не делает. То есть понятия — сами по себе, а их определения — сами по себе.


            1. lair
              19.12.2017 11:39

              В моем понимании, никакой формальной системы (которую нам обещают) так не построить.


          1. napa3um
            19.12.2017 10:58

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