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

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

Множество

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

Атрибутом множества будет, например, количество его элементов.

Процесс синтеза

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

Отличие множества от процесса синтеза

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

Атрибутом отрезка будет, например, его длина

Определение системы

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

Атрибутом системы будет, например, количество ее элементов.

Описание коллизии

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

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

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

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

Масла в огонь подливает наш язык. В нем нет способа разделить две точки зрения: взгляд на конструкцию и взгляд на объект имеют одно имя. Об этом я писал ранее в статье Понятие системы и конструкции. Их место в проектировании информационных систем

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

В итоге, я вижу, что целый пласт важных знаний утек из системной инженерии. О возможностях, которые в итоге были потеряны, я рассказал в статье Моделирование конструкций. Требования к моделлеру

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


  1. Dr_Dash
    16.11.2017 07:25

    Атрибутом системы будет количество ее элементов.

    Заглянем в Википедию
    Понятия, характеризующие систему
    Понятия, входящие в определения системы и характеризующие ее строение
    Элемент — предел членения системы с точки зрения аспекта рассмотрения, решения конкретной задачи, поставленной цели.
    Компонент, подсистема — относительно независимая часть системы, обладающая свойствами системы, и в частности, имеющая подцель.
    Связь, отношение — ограничение степени свободы элементов: элементы, вступая во взаимодействие (связь) друг с другом, утрачивают часть свойств или степеней свободы, которыми они потенциально обладали; сама же система как целое при этом приобретает новые свойства.
    Структура — наиболее существенные компоненты и связи, которые мало меняются при текущем функционировании системы и обеспечивают существование системы и ее основных свойств. Структура характеризует организованность системы, устойчивую во времени упорядоченность элементов и связей.
    Цель — сложное понятие, в зависимости от контекста и стадии познания имеющее разное наполнение: «идеальные устремления», «конечный результат», «побуждение к деятельности» и т. д.
    Понятия, характеризующие функционирование и развитие системы[2]:

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


    Вы смешиваете систему и просто множество, и как мне кажется делаете из этого ложные выводы, потому что такое упрощение выплёскивает ребёнка вместе с водой, и делает бессмысленным само понятие система

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

    Вы принципиально противопоставляете объект и систему, как нечто «исходное», над чем не произведён синтез, и конечный продукт — когда синтез завершён. Иными словами вы эти два понятия противопоставляете по «структурному» признаку: набор деталей и конструктор в сборе.

    Но насколько я понимаю, система и объект не антонимы, и не разные «агрегатные состояния» а разные степени сложности описания объектов. То есть это относится не столько к структуре, сколько к модели взаимодействия с окружающим миром, Если можно обойтись только описанием взаимодействия единого целого объекта и внешнего мира — это объект. Если затруднительно описать взаимодействие единого целого объекта и внешнего мира — тогда речь идёт о совокупности частей системы. Но в первом случае объект может быть очень сложным, например компьютер, но в качестве объекта логистики, он просто ящик в картонной коробке, бъющееся. А в качестве неработающего аппарата в ремонте он рассматривается как система из БП, материнки, винта и т.д.


    1. maxstroy Автор
      16.11.2017 07:29

      Я привел пример атрибута — как одного из. Их может быть бесконечно много, Но, чего нет у синтезированного на основе системы объекта, так количества элементов системы. Потому что объект можно поделить на части разным способом. Поэтому синтез и затем анализ не обязательно приведут к той же конструкции. Поэтому система и синтезированный на ее основе объект — не одно и то же. У объекта может быть бесконечное количество конструкций. Так же синтезировать из множества элементов можно разные объекты. Отношение между классом объектов и классом конструкций — многие ко многим


      1. Dr_Dash
        16.11.2017 07:33

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


        1. maxstroy Автор
          16.11.2017 07:39
          -1

          Но насколько я понимаю, система и объект не антонимы, и не разные «агрегатные состояния» а разные степени сложности способы описания объектов.

          Система не может быть описанием объекта, как вы говорите. Иначе получится, что множество точек — это описание отрезка.


          1. Dr_Dash
            16.11.2017 07:48

            демагогия


  1. maxstroy Автор
    16.11.2017 07:32

    Вы смешиваете систему и просто множество, и как мне кажется делаете из этого ложные выводы

    Я не нашел в определении системы ничего кроме множества объектов и связей (связи — тоже объекты).


    1. Dr_Dash
      16.11.2017 07:37

      Это определение всё таки, по моему скромному мнению, принципиально отличается от Вашего, потому, что в корне меняет дальнейший ход рассуждений


      1. maxstroy Автор
        16.11.2017 07:41

        Я прочитал определение системы — это множество объектов, связей, образующих единое. Но это — множество, а не объект! Иначе было бы сказано: система — это объект. Есть множества и есть объекты. Это два разных фундаментально отличных типа объектов учета. Свойства у них совершенно разные


        1. Dr_Dash
          16.11.2017 07:50

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

          целостность — ничего Вам не говорит?
          И что Вы ответите на мой пример: компьютер, но в качестве объекта логистики, он просто ящик в картонной коробке, бъющееся. А в качестве неработающего аппарата в ремонте он рассматривается как система из БП, материнки, винта и т.д.


          1. maxstroy Автор
            16.11.2017 07:52

            Системные инженеры путают целостный взгляд на группу объектов с процессом синтеза объекта


          1. maxstroy Автор
            16.11.2017 07:59

            Как вы сказали про комп — есть много разных описаний одного пространства. Для кого-то нет компа, но есть предмет святого поклонения, наполненный святым духом. Это разные точки зрения на одно и то же сущее. Это сущее можно разобрать на элементы разным, бесчисленным количеством способов. Описание каждого такого способа — это конструкция.


        1. michael_vostrikov
          16.11.2017 21:54

          Но это — множество, а не объект! Иначе было бы сказано: система — это объект.

          Объект слева в определении, его устройство и правила отнесения справа.


    1. napa3um
      16.11.2017 10:30

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


    1. lair
      16.11.2017 11:54

      Связи — объекты иного типа, нежели то, что они связывают. С точки зрения множества, объекты трактуются как однотипные.


      1. mayorovp
        16.11.2017 15:56

        Так ведь в одной из прошлых статей он как раз писал о том что типов объектов не существует :-)


        1. lair
          17.11.2017 09:33

          Зато в комменте выше пишет, что есть как минимум два отличных типа объектов учета.


  1. maxstroy Автор
    16.11.2017 07:35

    Если затруднительно описать взаимодействие единого целого объекта и внешнего мира — тогда речь идёт о совокупности частей системы.


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


    1. Dr_Dash
      16.11.2017 07:45

      Вот об этом я и пишу — предельно упростив понятие системы, и фактически сведя его к понятию множества, Вы выплёскиваете с водой ребёнка, и отсюда появляются утверждения

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

      Это описание системы, пройдите по ссылке, почитайте внимательно, Вы пытаетесь придумать новые определения для уже определённых понятий, причём изначально делаете это на основе «чтобы рассчитать движение капли воды в воздушной среде, рассмотрим одномерную каплю воды»


      1. maxstroy Автор
        16.11.2017 08:01

        Я строю логически непротиворечивые выводы. Хотите опровергнуть начните с аксиоматики и постройте выводы. Тогда увидите, что аксиоматика в системной инженерии противоречива в самой ее основе, где группе объектов приписаны свойства объекта.


  1. aamonster
    16.11.2017 07:42

    Я смотрю, "определение" множества из математики вы не прочитали. Не осуждаю, оно вам всё равно не понравится (гуглить zfc).
    Но, увы, такая пугающая аксиоматика имеет серьёзные предпосылки (гуглить парадокс Рассела).


    1. maxstroy Автор
      16.11.2017 07:45

      Я дал Канторовское определение из наивной теории множеств. Вы имеете ввиду определение класса, отличное от наивной теории множеств. В рамках данной статьи это не имеет смысла. Поэтому есть два термина: класс и множество. Класс ссылается на определение Цермелло, а множество — на определение, данное Кантором. Термин класс относится к теории множеств, а множество — к наивной теории множеств.


      1. aamonster
        16.11.2017 10:19

        Так смысл подкапываться под определение из наивной теории множеств, если её Рассел ещё в 1901 похоронил? Нет смысла искать бомбу там, где она не то что есть — уже взорвалась и всех убила.
        Или вы не знаете этого старого математического прикола — что из ложного утверждения следует что угодно?


        1. maxstroy Автор
          16.11.2017 10:33

          Где в наших утверждениях вы видите проблему Рассела?


          1. aamonster
            16.11.2017 10:53

            Ещё раз. Вы взяли за основу для своей работы заведомо сломанное определение множества. Что вы из него выведете — уже неважно, у вас в исходных данных сразу ошибка.


            1. maxstroy Автор
              16.11.2017 10:56

              ВЫ ошибаетесь, потому что наивная теория множеств работает на широком круге задач. Мы не выходим за этот круг, или вы докажете обратное?


      1. haoNoQ
        16.11.2017 13:37

        Класс ссылается на определение Цермелло, а множество — на определение, данное Кантором. Термин класс относится к теории множеств, а множество — к наивной теории множеств.

        В ZFC нет никаких классов, классы есть например в NBG, а в наивной теории множеств эти понятия считаются одним и тем же. Вы очень сильно путаетесь в этой теме.


        1. maxstroy Автор
          16.11.2017 13:53
          -1

          Хорошо, спасибо за коммент, но где парадокс обещанного Рассела?


  1. novice2001
    16.11.2017 10:13
    +1

    Вот вырожденная философия и до инженерии добралась.


  1. maxstroy Автор
    16.11.2017 11:08

    Случайно удалил коммент. Напишите его еще раз.


  1. lair
    16.11.2017 11:36

    При обсуждении терминов, используемых в системной инженерии,

    Простите, а по какому источнику вы приводите термины, используемые в "системной инженерии", и почему вы считаете этот источник верным и применимым?


  1. lair
    16.11.2017 11:52

    В философии есть понятие синтеза. Это обозначение смены перспективы нашего восприятия.

    По какому именно направлению философии вы приводите это "понятие"? Первое же найденное мной определение гласит: "Си?нтез — процесс соединения или объединения ранее разрозненных вещей или понятий в целое или набор."


    Мышление группы точек как целого не есть синтез этой группы в объект.

    Почему же? Строго согласно определению выше, мы объединили ранее разрозненные "вещи" (точки) в набор. Синтез.


    Под словами «образует определенную целостность» надо понимать – мыслимое как одно, а не операцию синтеза.

    Почему же? Аналогично примеру выше, приведенное определение синтеза прекрасно подходит к системе.


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

    Операция сложения на множествах — моноид. Операция сложения над системами — нет (человек — система, теоретически, двух людей можно "сложить", но вы не получите человека, вы получите пару людей, это система другого "типа". Более того, нейтрального элемента для этой операции тоже нет). Из этого вытекает, что приравнивать операции над системами к операциям над множествами нельзя, у них разные свойства.


    Над системой можно провести операцию синтеза и получить объект.

    Исходя из аргументации выше — нельзя, потому что система — уже результат синтеза.


    Атрибутом полученного в результате синтеза объекта может быть, например, цвет объекта. Понятно, что цвет не может быть у системы.

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


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

    Из чего вы делаете такой вывод?


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


    Если бы системные инженеры сделали бы правильные выводы,

    Как вы определяете "правильность" выводов в отсутствии принятой всеми сторонами дискуссии общей аксиоматики?


  1. third112
    16.11.2017 12:37

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


    1. maxstroy Автор
      16.11.2017 13:56
      -2

      множество равно система. Но это тайна!


      1. lair
        16.11.2017 14:03

        множество равно система.

        В какой системе определений?


        1. maxstroy Автор
          16.11.2017 14:06
          -1

          какие системы вам известны, чтобы выбрать подходящую?


          1. lair
            16.11.2017 14:08

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


            Так в какой же?


            1. maxstroy Автор
              16.11.2017 14:23
              -1

              Я не знаю никаких. Думал, что вы знаете


              1. lair
                16.11.2017 14:31

                То есть вы не знаете никаких систем определений, но при этом беретесь рассуждать об определениях? Вне системы?


                Я же уже задавал этот вопрос (неоднократно). Вот вы в статье пишете "обратимся к определению системы" — но не говорите, откуда вы взяли это определение. А ведь определение существует в рамках системы (или bounded context, если угодно).


                1. maxstroy Автор
                  16.11.2017 14:37
                  -1

                  Я дал определение из философского словаря. Оно настолько общепринятое, что в комментариях не нуждается)


                  1. lair
                    16.11.2017 14:48

                    Оно настолько общепринятое

                    На основании чего вы это утверждаете? Почему вы считаете, что в "системной инженерии" принято то же самое определение?


                    В частности, SEBoK предлагает использовать термин "engineered system", и говорит, что systems engineering под "системой" понимает именно "engineered system", которой дается (в частности), следующее определение:


                    An engineering system is a complex socio-technical system that is designed, developed, and actively managed by humans in order to deliver value to stakeholders.

                    В свою очередь, общему понятию "система" SE дает следующее определение:


                    combination of interacting elements organized to achieve one or more stated purposes

                    (это, кстати, расширенная версия определения из ISO/IEC/IEEE 2015)


                    Почему из двух определений по ссылке я взял второе? Потому что там же написано, что именно это определение "is the recognized definition for systems engineers".


                    Ну и до кучи полное обсуждение: What is a System?.


                    Как можно видеть, понятие системы, которым оперирует SEBoK (а это один из авторитетных источников в системной инженерии), отличается от того, которое привели вы (хотя вы утверждаете, что оно общепринятое).


      1. third112
        16.11.2017 16:20

        Тайна = мировой заговор марсиан?
        Есть способ специально и нарочно отвечать невпопад… Я, наверное, тупой, поэтому мне показалось, что смысла этой и других цитированных статей уважаемого автора мне не понять, как и его ответов на мои примитивные вопросы. Что поделать — не всем дано понимание Системной Инженерии :(


  1. kiralymirik
    19.11.2017 09:18
    +1

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

    Спасибо за Ваши рассуждения! Они мне помогли разобраться и значительно дальше продвинуться в изучении системы типов Мартина-Лёфа, ученика Колмогорова.

    В наше время слова и рассуждения действительно мало что значат. Старайтесь формализовывать ваши рассуждения посредством COQ или AGDA с комментариями.

    Тогда ни один комментатор не сможет подкапаться.


    1. maxstroy Автор
      19.11.2017 11:31
      -1

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


    1. evkochurov
      20.11.2017 08:15

      Боюсь, в данном случае это нереалистичное предложение.

      Очевидно строгие для человека шаги доказательств для машины иногда требуют невероятно сложных построений. Вот пример, что получилось, когда на AGDA записали основы алгебры (буквально по учебнику):
      psta.psiras.ru/read/psta2015_4_313-340.pdf
      psta.psiras.ru/read/psta2017_1_3-46.pdf
      Это работа потребовала несколько лет у квалифицированного ученого и программиста.

      Конструктивные теории множеств в последние годы начали появляться, но что-то мне подсказывает, что записать их на COQ или AGDA будет сильно сложнее, чем в случае с основами алгебры.

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


      1. kiralymirik
        20.11.2017 10:40

        Благодарю за данные статьи.
        Описанию теории множеств посвящены 3 и 10 главы книги Гомотопическая теория типов. Из того, что я смог разобрать, особых проблем описать теорию множеств с помощью языка гомотопической теории типов возможно.
        С отказом от теорий множеств я полностью согласен. Все они устарели вместе с появлением вычислительной техники и теорий автоматических доказательств.

        COQ и AGDA… да, я погорячился. Ведь давно известно, что лучше всего выстраивать свои DSL ( задачеспецифичные языки программирования), чем пользоваться чем-то всеоблемлющим.

        Для размышления, порой, достаточно накидать схему классов аля UML.

        Я за наглядность. Код воспроизводится вне зависимости от человека и физики. Тем более, что в промышленных языках программирования существуют способы однозначно избегать неоднозначности трактовки слов и терминов. Coq или AGDA являются просто «самыми мощными».

        Очень упрощённый и совершенно неправильный пример:
        public abstract class Система implements Множество<E extends СвязанныеДругСДругомОбъекты> {
         int КоличествоОбъектов();
        }
        public interface Множество<T> extends Set<T>{
              int КоличествоОбъектов();
        }