Виды описаний системы

Системное мышление выделяет три основных вида описаний системы:

  1. Функциональное описание отвечает на вопрос “Как работает система” (ее функции, функциональное или ролевое поведение);
  2. Модульное описание отвечает на вопрос “Из каких частей собрать систему?”
  3. Описание размещений отвечает на вопрос “Где расположена система (части системы)?”
  4. * Экономическое отвечает на вопрос “Сколько стоит система”? (не основное описание системы)

Архитектура системы включает функциональную архитектуру, модульную архитектуру и архитектуру размещений.

В архитектуру входят только важные (НЕ ВСЕ) части, неархитектурые описания содержат конкретные расчеты, формальные модели и пр. Архитектура – это все самые важные части системы, которые утвердил архитектор исходя из требований. Тем не менее, при создании системы нельзя забывать об неархитектуре (это ДЕТАЛИ), без которой не будет эмерджентности.

Хотелось бы привести пример из своей профессиональной деятельности. Я являюсь аналитиком, который участвует в проектировании информационных систем (в терминах системного мышления я - инженер по требованиям). На последнем проекте я занималась проектированием подсистемы интеграции для системы управления бюджетированием.

Сначала были выявлены требования к интеграционному взаимодействию, на основании них была разработана функциональная архитектура:

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

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

Архитектура размещений - это описание того, как будет разворачиваться разработанное программное обеспечение в ЦОДе заказчика. Такую схему создавали отдельные роли в нашей проектной команде - администраторы серверов.

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