Архитектура системы


Архитектура системы — принципиальная организация системы, воплощенная в её элементах, их взаимоотношениях друг с другом и со средой, а также принципы, направляющие её проектирование и эволюцию[1]:3.

Понятие архитектуры в значительной мере субъективно и имеет множество противоречивых толкований; в лучшем случае оно отображает общую точку зрения команды разработчиков на результаты проектирования системы.[2]:27 Существует большое количество определений архитектуры. Коллекция определений, относящихся, в основном, к архитектуре программного обеспечения, собрана на сайте Института программной инженерии Университета Карнеги — Меллона[3].

В настоящее время существует сильная тенденция рассматривать архитектурное и не архитектурное проектирование как различные виды деятельности; делаются попытки определить их как отдельные практики, однако эти виды проектирования в значительной мере «переплетены». Архитектурные решения в сравнении с обычными проектными решениями рассматриваются как более абстрактные, концептуальные и глобальные; они нацелены на успех всей миссии и на наиболее высокоуровневые структуры системы[4]:272.

По мере роста сложности решаемых задач возникла необходимость структурирования систем. Однако практики нашли термин «структура» недостаточным для описания всех аспектов системы[4]:272.

Термин «архитектура» в системной инженерии ввёл профессор университета Южной Калифорнии Эберхард Рехтин (англ. Eberhardt Rechtin) в начале 1990-х годов. Он считал, что по мере усложнения систем их «высокоуровневого проектирования» (или «концептуального проектирования»), как оно понималось в те годы, было недостаточно, чтобы приводить инженеров и проектировщиков к созданию точных и эффективных проектов. Он изучил архитектурные принципы в строительстве, чтобы понять, как создаются и разрабатываются сложные системы (например, здания)[6]:223.

Рехтин поясняет термин архитектура системы следующим образом: