Лента/TalkLedger/№ 11

Уровни существования решения

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

В предыдущих текстах слово «система» использовалось в двух разных смыслах. Это не было оговорено явно, из-за чего у внимательного читателя могло возникнуть ощущение логического напряжения: решение описывается как неизменное, но при этом у него меняется статус; решение «существует в системе», но одновременно «управляет системой».

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

Данная статья фиксирует это разведение явно.

Два смысла слова «система»

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

Они принципиально различны.

Предметная система

Предметная система — это система, чьё поведение и допустимые состояния определяются принятыми решениями.

Это может быть:

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

Решения в этом уровне выполняют управляющую функцию. Они задают правила допустимого поведения:

— что разрешено; — что запрещено; — какие переходы состояний считаются корректными.

Когда говорят, что «решение изменяет систему», речь идёт именно об этом уровне.

Система управления решениями

Система управления решениями — это система, в которой сами решения существуют как объекты.

На этом уровне решение:

— имеет идентичность; — имеет статус; — существует во времени; — может быть вытеснено или отменено; — может вступать в конфликт с другим решением.

Здесь решение не управляет поведением чего-то внешнего. Оно само является объектом управления.

Когда говорят, что «у решения есть статус» или что «решение отменено», речь идёт именно об этом уровне.

Почему возникает ощущение противоречия

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

Пример:

— решение неизменно; — у решения меняется статус.

Если считать, что речь идёт об одном уровне, это выглядит как логическое противоречие.

После разведения уровней противоречие исчезает.

Неизменность решения и изменение статуса

Решение неизменно как факт выбора.

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

Это свойство решения как объекта в системе управления решениями.

Статус решения отражает не его формулировку, а его действие относительно предметной системы.

Статус отвечает на вопрос:

— влияет ли это решение сейчас на допустимые состояния предметной системы.

Изменение статуса — это операция управления решением, а не его редактирование.

Отмена и вытеснение

Отмена решения и вытеснение решения — это операции системы управления решениями.

Они не означают:

— что решение было «неправильным»; — что его формулировку нужно переписать; — что прошлое было ошибкой.

Они означают, что данное решение больше не участвует в управлении предметной системой.

В предметной системе изменяется набор действующих правил. В системе управления решениями изменяется статус объекта.

Это разные действия, на разных уровнях.

Почему статус не является частью предметной системы

Статус решения не описывает состояние предметной системы напрямую.

Он описывает положение решения относительно управления.

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

Статус нужен не предметной системе. Статус нужен системе управления решениями.

Формальное следствие

После разведения уровней становится ясно:

— решение существует как объект в системе управления решениями; — решение действует как правило допустимых состояний в предметной системе.

Это не две разные сущности. Это две разные проекции одной сущности на разные уровни модели.

Смешение этих уровней делает невозможным корректное понимание:

— статуса решений; — отмены и вытеснения; — конфликтов между решениями.

Разведение уровней устраняет мнимые противоречия и фиксирует модель в непротиворечивом виде.