Закон и алгоритм функционирования системы

Эти понятия описывают поведение системы на разных уровнях абстракции.

Закон функционирования задаёт устойчивую зависимость между состоянием системы, входами, внешней средой и результатом. Он отвечает на вопрос: «По каким правилам изменяется система?»

Алгоритм функционирования задаёт конкретную последовательность действий, которая реализует нужное поведение. Он отвечает на вопрос: «Что именно и в каком порядке выполняется?»

Модель

Поведение динамической системы можно условно записать так:

x(t + 1) = F(x(t), u(t), w(t))
y(t)     = G(x(t), u(t))

где:

  • x — внутреннее состояние;
  • u — управляющее воздействие;
  • w — внешнее возмущение;
  • y — наблюдаемый результат;
  • F и G — законы перехода состояния и формирования выхода.

Алгоритм конкретизирует вычисление F и G: какие данные прочитать, какие условия проверить, какое состояние сохранить и какой ответ вернуть.

Пример

Для очереди сообщений закон можно сформулировать так:

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

Алгоритм реализации содержит уже конкретные шаги:

  1. получить сообщение;
  2. обработать его идемпотентно;
  3. сохранить результат;
  4. подтвердить позицию;
  5. при ошибке не подтверждать сообщение и применить политику повторов.

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

Общие закономерности систем

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

Целенаправленность

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

Обратная связь

Управление требует информации о фактическом состоянии. Отрицательная обратная связь уменьшает отклонение, положительная — усиливает изменение.

Необходимое разнообразие

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

Иерархия и декомпозиция

Сложную систему рассматривают через подсистемы и уровни управления. При этом свойства целого нельзя полностью вывести из свойств изолированных частей.

Эмерджентность

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

Гомеостаз

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

Развитие

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

Как применять в анализе программной системы

  1. Назвать цель и наблюдаемый результат.
  2. Определить состояние, входы и внешние возмущения.
  3. Записать инварианты — что должно оставаться истинным.
  4. Описать алгоритм перехода между состояниями.
  5. Найти обратную связь и задержки в ней.
  6. Проверить граничные состояния и отказ компонентов.
  7. Сравнить фактическое поведение с законом и целью.

На собеседовании

Может ли один закон функционирования иметь несколько алгоритмов?

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

Связанные заметки