# Системная инженерия ## Архитектурное моделирование компьютерных систем ## Лекция 2 ## Предмет моделирования. Сущностная парадигма. Субстанциональная парадигма Пенской А.В., 2025 --- ## Предмет и задачи моделирования  Кто этим должен заниматься? ---- ### Задачи моделирования для IT (повтор)  1. Моделирование предметной области в компьютерной системе. 1. Моделирование компьютерной системы в течении её жизненного цикла (концепция, техническое задание, технический проект, архитектура, реализация, целевая система, журналы…). ---- ### Рост сложности информационной системы
Источники сложности: 1. предметная область; 1. интерфейсы интеграции с другими системами, API; 1. особенности реализации (подпорки в терминах Н.Н. Непейводы); 1. подмена понятий и объектов. Object Modelling тут никак не связано с ООП.

---- #### Подходы к моделированию предметной области в программировании - минималистичный базис (SmallTalk, Lisp, Erlang) - богатые языковые возможности (C++, Scala, PHP, Ruby) - что-то по середине (C, Go) Минималистичный **базис** позволяет: упростить разработку компилятора; упростить изучение языка; универсализация механизмов. Но: необходимость "адаптации" к прикладным задачам; многообразие таких адаптаций; сложность оптимизаций (поиск паттернов, а не конструкций). **Проблема**: как свести предметную область к небольшому базису в нашем изменчивом мире? --- ## Как подступиться к проблеме?  Необходимо сосредоточиться на объектах предметной области, из неопределённости и возможности множества интерпретаций. **Вопрос**: Какие объекты/явления мы моделируем (4 штуки)? ---- ### Конкретные объекты  ---- ### Обобщённые объекты  ---- ### Отношения и взаимосвязи  ---- ### Изменения и действия   --- ## Объекты предметной области и
объекты компьютерной системы ### Прямое отображение  *Имеет смысл?* ---- ### Отображение через `[`бизнес`]` модель  *Зачем нам нужна промежуточная модель?* ----  **Наша задача** сформировать бизнес/прикладную модель и уйти от "наивного" восприятия. --- *Disclaimer*: Странная терминология! --- ## Сущностная парадигма. Теория
(Entity paradigm)  - Тип сущности (Entity type) - Экземпляр сущности (Individual entity) - Атрибут (Attribute) ---- ### Миф о пещере 
Сущность
представление и смысл данной вещи, то, что она есть сама по себе, в отличие от всех других вещей и в отличие от изменчивых (под влиянием тех или иных обстоятельств) состояний.
Экземпляр сущности это совокупность: - сущность/тип/идея; - экземпляр/тень/вещь.
---- ### Тип сущности и экземпляр сущности  ---- ### Что появлется у экземпляра? (нет у сущности)

Атрибут
изменчивое или несущностное состояние объекта. Не является самостоятельным объектом.
---- ### Сущность и атрибуты  ---- ### Отношения Через атрибуты (как и в субстанциональной). Вернёмся позднее. ### Изменения Как в субстанциональной парадигме. Вернёмся позднее. ---- #### Повторное использование в сущностной парадигме (теория)  ---- #### Повторное использование в сущностной парадигме (практика)  --- ## Варианты реализации сущностной парадигмы  --- ## Сущностная парадигма. Проблемы ### Сущность или атрибут? Модель  ---- ### Сущность или атрибут? Таблица


---- ### Сущность или атрибут? Интерпретация


**Вопрос**: Какой вариант правильный? Нет неправильного. Есть разные применения. --- ## Субстанциональная парадигма (Substance paradigm)  - Вторичная иерархия субстанции (Secondary Substance Hierarchy) - Вторичная иерархия атрибутов (Secondary Attribute Hierarchy) ----
Субстанция
Философская категория классической рациональности для обозначения объективной реальности в аспекте внутреннего единства всех форм её проявления и саморазвития. Субстанция неизменна в отличие от перманентно меняющихся свойств и состояний: она есть то, что существует в самой себе и благодаря самой себе.
 Объект описывается: 1. совокупностью вторичных субстанций; 1. первичной субстанцией.
---- ### Переход от сущностной
к субстанциональной парадигме  ---- ### Иерархия субстанций
первичная и вторичная субстанция  --- ### Первичная субстанция и атрибуты  ---- ### Иерархия атрибутов


---- ### Отношения между элементами парадигмы - Уровень парадигмы: - первичная субстанция $\leftrightarrow$ вторичная субстанция - первичная субстанция $\leftrightarrow$ атрибут - Уровень объектов (через атрибуты): - первичная субстанция $\leftrightarrow$ первичная субстанция  **Вопрос**: Какие видите проблемы (можно из практики разработки)? ---- #### Отношения: консистентность ссылок  `Foreign Keys with cascade delete` --- ## Субстанциональная парадигма. Изменения
 Первичная субстанция, атрибуты
 Вторичная субсанция
---- ### Изменение атрибутов: процесс  Варианты: позиция, вектор силы, дискретизация по времени, момент приложения силы, коллизии ---- ### Изменение вторичной субстанции: онтогенез    --- ## Субстанциональная парадигма. Практика ### Гибкость при моделировании  В какой технологии мы видели что-то похожее? Объектно-ориентированное программирование (ООП) ---- ### Отображение парадигм:
Субстанциональной на сущностную  В каком классе ПО это встречается? Object–Relational Mapping (ORM) ---- #### Отображение парадигм:
Выбор уровня сущностей  ---- #### Отображение парадигм:
Схлопывание уровней субстанций Сверху — включение субстанции в сущность.  Снизу — представление субстанции в виде атрибутов. --- ## Субстанциональная парадигма: Проблемы 1. Как определить субстанцию? 1. Как описать отношения между атрибутами? 1. Как описать процессы? Проблема аналогична проблемам сущностной и логической парадигмам, по этому рассмотрим позднее. ---- ### Как определить субстанцию?   Субстанция — позволяет "схлопнуть" объекты реального мира на уровне концепций. Унифицировать их. ---- ### Как описать отношения между атрибутами?  - Отношения между объектами "встраиваются" в субстанцию. - Инварианты целостности данных — внешнии относительно парадигмы ограничения. ---- ### Субстанциональная парадигма. ООП  