Skip to content

Классы

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

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

Деревянный - это принадлежащий к классу “Сделанное из дерева”.

Синий - это принадлежащий к классу “Индивиды синего цвета

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

В создании реальных моделей есть одна очень существенная проблема: как моделировать изменения объекта во времени?

Как описать в формальной модели для реализации в корпоративной ИТ-системе: дом был синим, а стал зелёным (перекрасили)? Сотрудник был рабочим, а стал кладовщиком (переназначили)?

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

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

В 4D экстенсионализме удобно считать, что классы вечны, то есть их состав неизменен. Если мы видим изменение того свойства объекта, которое отмоделировано этим классом - это не значит, что объект этот класс покинул. Это значит, что объект в нём и не был, а была в нём - его темпоральная часть.

Если есть “Моя машина”::индивид, которую 01.03.2023 перекрасили из синего в зелёный цвет - то с самого начала было бы ошибкой классифицировать индивид “Моя машина” классом “Синий”. К классу “Синий” принадлежит индивид “Моя машина с момента выпуска до 01.03.2023”, и этот факт никогда не изменится, в этом смысле состав класса “Синий” вечен. А к классу “Зелёный” принадлежит индивид “Моя машина с 01.03.2023 до 12.06.2030”, и класс “Зелёный” в этом смысле тоже вечен, хотя мы пока что не прошли по линии времени достаточно, чтобы знать ту дату в будущем, когда машина будет утилизирована.

Другой пример: “машина Мерседес номер РР45678, попавшая в аварию в 22:03 25.12.2023 на перекрестке улиц Пушкина и Гоголя” принадлежит к классу “Чёрный”.

Вот диаграмма – пространственно-временная карта (space-time map) из книги Chris Partridge «Business Objects: Re-Engineering for Re-Use», которая это иллюстрирует:

Все три измерения пространства на этой диаграмме показывают на одной оси, а время на другой оси.

Один и тот же «помидор 91»::индивид имеет две темпоральные части: «помидор в зелёном состоянии 92»::индивид и «помидор в красном состоянии 93»::индивид. Их отделяет друг от друга темпоральная часть того же помидора, названная «сложным событием смены цвета», когда цвет помидора переходит от зелёного к красному. Обратите внимание, что эта часть имеет ненулевую протяжённость во времени (помидор созревает не мгновенно), но по сравнению со всем сроком существования помидора как 4D объекта – это может быть отражено в модели именно как событие, то есть срез в какой-то момент времени.

В книге BORO вы ознакомитесь с другими примерами таких диаграмм и прочитаете их подробные объяснения.