Рубрика «моделирование предметной области»

Golang DevDay: 31 мая, Новосибирск + трансляция - 1

Обычно с приходом тепла DevDay уходит на каникулы. На этот раз решили, что ждать осени — непозволительно. В последний день весны приглашаем вас присоединиться к Golang DevDay. Будет и мягкий переход «из не-Go в Go» для тех, кто только присматривается к языку, и выступления похардкорнее.

Под катом подробности, расписание и ссылка на регистрацию.
Читать полностью »

Вступление

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

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

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

Я претендую на создание подобного языка, но для описания более сложных объектов: операций, функций, объектов. Об этом языке сегодня мой рассказ.
Читать полностью »

Пусть есть пользователи информационной системы. Авторизованным пользователям позволено строить свои модели в этой ИС. Неавторизованные могут только смотреть, как другие строят эти модели, но сами не могут этого делать.
Вопрос: сколько ролей в ИС?

Пусть есть две кучи песка, сваленные рядом.
Вопрос: Это одна куча, или по-прежнему две кучи, но теперь сваленные рядом?

Пусть есть должность директора школы №123. Сидоров занимает эту должность после Иванова.
Вопрос: это два разных директора, или один директор?

Сегодня Иванов играет роль княжны Мэри.
Вопрос: завтра, когда он будет играть роль с тем же названием, это будет та же роль, или другая?
Вопрос: Сидоров, который сегодня играет роль с тем же названием, играет ту же роль, или другую?

Есть часовой механизм, исполняющий роль часового привода в часах на городской башне. Пусть он сломался и его заменили на другой часовой механизм.
Вопрос: часовой привод теперь другой, или это тот же часовой привод, но с другим часовым механизмом?
Читать полностью »

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

Понятия: множество, тип, атрибут
Как запутать аналитика. Часть первая
Как запутать аналитика. Часть вторая: что такое моделирование предметной области?
Как запутать аналитика. Часть третья. Глаголы и числительные

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

Как запутать аналитика — 4. Вероятность и точность

Далее я начал рассмотрение моделирования операций, функций и объектов с единой точки зрения.

Как запутать аналитика — 5. Понятийный аппарат

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

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

Правильно заданный вопрос быстро приводит к правильному ответу. Недавно меня спросили: «Почему стандарты бизнес-анализа сконцентрированы на выявлении требований, но ничего не говорят о превращении этих требований в решение?» В самом начале своей карьеры аналитика я искал ответ на вопрос: как анализировать предметную область и как превращать результат анализа в структуру модели: откуда брать классы, атрибуты и методы? Тогда я нашел один более-менее вразумительный метод, описанный в книге Крега Лармана Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку. Аналитику предлагалось прохождение по тексту с маркерами разных цветов: Красный выделяет существительные и является основанием для создания классов, зеленый — прилагательные, причастия и проч. — основа для создания атрибутов этих классов. И глаголы выделяются синим — основа для создания методов.

Однако, в реальности этот метод не работал. Один и тот же факт я мог смоделировать при помощи класса, значения атрибута или метода в зависимости от своего желания. Об этом написано подробно у Крисса Партриджа в книге Business Objects: Re-Engineering for Re-Use.
Читать полностью »

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

Мы говорили об объектах учета как о 4-х мерных объектах, существующих в пространстве-времени. Для моделирования этих объектов существуют три способа их представления:

  1. При помощи статических объектов (стул)
  2. При помощи динамических объектов, сохраняющих параметры своей динамики (вращающийся двигатель)
  3. При помощи динамических объектов, не сохраняющих постоянными параметры своей динамики – операции (операции и события)

Читать полностью »

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

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

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

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

Объект учета и результат его классификации (существительные)

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

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

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

В текущей статье я определю следующие термины: объект, состояние, событие, операция, функция. Я расскажу о том, как можно представить себе их. В качестве мета-метамодели для моделирования мы возьмем теорию множеств, а не MOF. Почему именно ее? Потому что это единственный на сегодняшний день известный способ моделирования, который имеет математическую основу, границы применимости которого нам хорошо известны, достаточно широки и обоснованы.

Строгое определение понятий: объект, состояние, событие, бизнес-операция и бизнес- функция - 1

Прошлые статьи вызвали оживленную дискуссию среди тех, кто использует для моделирования предметных областей инструменты ООП: языки ООП, нотацию UML. Несмотря на то, что я постоянно подчеркиваю, что объекты учета, о которых я веду речь, не моделируются средствами UML, и объясняю почему, тем не менее, вопрос об их моделировании методами ООП поднимается снова и снова. Наверно, мне надо еще раз рассказать, чем так плох ООП для моделирования предметных областей.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js