Архитектурная модель программного обеспечения

Архитектурная модель программного обеспечения (англ. architectural model) — это совокупность диаграмм, отражающих статические или динамические (поведенческие) характеристики разрабатываемого программного обеспечения[1][2][3]. Такие диаграммы отображают различные точки зрения на систему в выбранных областях анализа. Для их создания применяются существующие стандарты, основная задача которых — продемонстрировать конкретный набор компромиссов, заключённых в структуре и проектировании системы или экосистемы. Архитектор программного обеспечения использует архитектурные модели для облегчения коммуникации и получения отзывов коллег.

Ключевые элементы архитектурной модели программного обеспечения включают:

  • Информативность: Для соответствующей точки зрения должна быть представлена достаточная информация для подробного описания рассматриваемой области. Информация не должна быть недостаточной или неопределённой. Главная цель — уменьшить недопонимание, а не способствовать ему. См. ниже раздел о «главном аспекте».
  • Строгость: Архитектор использует определённую методологию для построения данной модели, и итоговая модель выглядит определённым образом. Проверкой строгости служит правило: если два архитектора из разных городов описывают одно и то же, их диаграммы будут почти идентичны (с возможным исключением только визуального расположения элементов).
  • Диаграмма: В целом, модель — это любая абстракция, упрощающая предмет ради отражения определённой точки зрения. В данном контексте под архитектурными моделями понимаются только такие описания, которые представлены в виде диаграмм.
  • Стандарты: Стандарты эффективны, когда ими пользуются все. Это существенно повышает уровень понимания по сравнению с ситуацией, когда каждая диаграмма строится по собственным правилам. Наиболее распространённый стандарт — Unified Modeling Language, UML.
  • Главный аспект: Легко перегрузить диаграмму, пытаясь учесть разные потребности сразу. Лучше создавать отдельные диаграммы для каждой точки зрения, чем строить одну перегруженную. Аналогия: при проектировании зданий архитектор предоставляет множество различных схем (план перекрытий, электрики, отопления, водопровода и т. д.), каждая из которых содержит только необходимую узкому специалисту информацию.
  • Иллюстрация: Модель создаётся ради общения и получения обратной связи. Диаграмма должна отвечать на конкретный вопрос и передаваться другим для:
    1. проверки согласия;
    2. направления их работы.
  • Правило пальца: Формулируйте то, что хотите донести и на чью работу намерены повлиять.
  • Набор компромиссов: Методология ATAM, Architecture Tradeoff Analysis Method описывает процесс экспертной оценки целесообразности архитектурных решений. Исходный принцип: не существует универсального проектного решения для всех случаев — почти всегда необходима адаптация под конкретные бизнес-требования. Архитектор должен осознанно продемонстрировать такие компромиссы в создаваемых диаграммах и быть готовым отметить их словесно.
  • Компромиссы в структуре и проектировании: Например, компонент не является компромиссом как таковым, а компромиссы — это фундаментальные принципы, лежащие в основе проектных моделей. Для обоснования определённого технического выбора диаграмму можно использовать как иллюстрацию своей позиции.
  • Система или экосистема: Моделирование архитектуры возможно на разных уровнях абстракции: как для отдельного приложения (с описанием компонентов и взаимодействий), так и для совокупности приложений, реализующих бизнес-процесс. При этом моделирование уровня компонентов и классов — задача скорее инженерного проектирования, чем архитектуры.

Примечания

  1. Hasselbring, Wilhelm (2018). “Software Architecture: Past, Present, Future”. The Essence of Software Engineering [англ.]. Springer International Publishing: 169—184. DOI:10.1007/978-3-319-73897-0_10. ISBN 978-3-319-73896-3. Дата обращения 2025-02-10.
  2. About the Unified Modeling Language Specification Version 2.5.1 (англ.). www.omg.org. Дата обращения: 10 февраля 2025.
  3. Hilliard, Rich. On the Composition and Reuse of Viewpoints across Architecture Frameworks // 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture : [англ.] / Rich Hilliard, Ivano Malavolta, Henry Muccini … [et al.]. — IEEE, август 2012. — P. 131–140. — ISBN 978-1-4673-2809-8. — doi:10.1109/wicsa-ecsa.212.21.

Ссылки