С чего начать разработку архитектуры?
Примечание: Если вы считаете, что на построении архитектуры съели хотя бы полпёсика, то эта статья не для вас.
Модель — абстрактное представление реальности в какой-либо форме.
Предполагаем, что архитектор уже закончил со сбором требований к будущей системе и их анализом.
Притом формы ввода/выводы информации, схемы обработки, абстрактные структуры массивов и элементов данных сами по себе тоже являются информацией (как и всё приложение) и подчиняются той же фундаментальной концепции. Разработку архитектуры нужно начинать только с понятия и принятия фундаментальной концепции работы с информацией (данными): передача, хранение и обработка.
Фундаментальная концепция приводит к появлению первых идей и к созданию первых моделей обработки данных.
Одно из названий поток данных, где элементы обычно являются будущими укрупнёнными модулями, реализующими конкретные задачи манипуляции данными. Модели работы с данными могут называться по разному из-за разницы вкладываемых понятий.
Этот этап очень опасен: на архитектора может нахлынуть масса оригинальных идей. Основой архитектуры (основной моделью) станет модель бизнес-процесса движения основных данных (то, для чего будет предназначено приложение). Подавить желание помечтать или нарисовать кучу ненужных схем. Нужно сдержать этот поток идей. Ничего лишнего. Сейчас нужно создать только одну схему последовательного получения основных данных, хранения и обработки. Именно такая схема ложится в основу, является основным представлением архитектуры и должна быть всегда на виду. Здесь не нужна декомпозиция. В качестве бизнес-процесса может выступать технологическая карта.
Например добавляются модели пользователей, управления доступом (ACL), модели логирования, модели мониторинга, событийную модель и т.п. Вторая основная модель будет с добавлением вторичных бизнес-процессов и данных. На этом этапе может прийти понимание о том, стоит ли делать монолитное приложение, компонентное, применить микросервисный подход или какой-либо другой. На основе второй модели уже возможна разработка первой схемы БД и/или хранилища данных, и прототипа приложения. С этого момента необходимо начать разработку документа обоснования архитектуры. При этом интересен факт: между монолитом и каждым микросервисом (в микросервисной архитектуре) нет различий с точки зрения фундаментальной концепции. Документ обоснования архитектуры является регистратором рассуждений о причинах принятых решений архитектуры и разъяснений.
Прототип безусловно будет являть собой формализованный макет приложения. Создание первого прототипа приложения на основе второй модели может показать непосредственную пользу приложения. Например вместо детализованных форм можно использовать условные кнопки, создающие готовый элемент на основе генераторов случайных данных.
Но первая основная модель и вторая основная модель будут являться базовыми. После создания второй основной модели и первого прототипа вы можете начать декомпозицию, укрупнение, разработку других архитектурных представлений и моделей. В процессе дальнейшей разработки первая и вторая модель могут быть улучшены, уточнены и доработаны.