Архитектурное проектирование - это комплекс мер, направленных на создание и проработку архитектурных решений, которые оформляются в виде документации на проект.

Основная цель: формализация процесса проектирования. Для этого выделяются следующие "строительные" блоки:

- Сбор и выделение значимых требований
- Анализ предметной области
- Формализация процесса построения и описания архитектуры
- Использование (в том числе повторное) готовых концепций проектирования
- Использование формализованных подходов

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

Система считается спроектированной, когда достигнуты Архитектурно значимые требования.

Аспекты, которые учитываются при формировании значимых требований:

 - Описательные характеристики
 - Индикаторы
 - Эвристики (оценки)

Хорошо показывает себя на больших проектах, на проектах с высокими рисками (здравоохранение, финтех).

Достоинства:

- естественная декомпозиция - разбивать на части всегда проще, чем объединять
- эффективная грануляция проекта
- прогнозируемые сроки

Недостатки:

- сложно работать в непроработанных доменах
- сложно выполнять исследовательские задачи
- легко уйти в "высокие уровни абстракции"

Идеально для маленьких и средних проектов (заказная разработка, аутсорс).

Достоинства:

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

Недостатки:

- сложно прогнозировать сроки
- сложно укрупнять
- большая доля рефакторинга
- гранулирование "хромает"
- риск закопаться в деталях

Проектирование архитектуры идет по следующему циклу:

- Сбор требований
- Анализ
- Формирование архитектурных кандидатов
- Проверка на соответствие требованиям
- Эволюция
- Референсные архитектуры - готовые архитектурные концепции, с хорошим уровнем документирования, которые 
можно использовать как отправную точку разработку проекта;
- Архитектурные тактики - общее описание действий, которые используются для достижения значимых требований (примеры, "сокрытие информации", "генерализация модуля", "извлечение компонента" и т.д.)
- Готовое решение - рассмотрение части архитектуры как "черного ящика", функционирующего на базе готового продукта. Очень часто, это 
софт с открытым исходным кодом.

Недостатки использования ПО с открытым кодом в больших проектах:

- "размытие" ответственности
- законодательные коллизии (например, налоговый и бухгалтерский учет)
- сложности с сопровождением и обновлением

Получение сбалансированного проект - это одна из основных задач архитектурного проектирования. Чтобы удерживать "баланс" архитекторы часто используют готовые методы построения дизайна. В целом все методы соответствуют общему циклу разработки архитектуры, но сфокусированы на разных нюансах. Допускается комбинирование подходов.

- Аттрибутивный дизайн -    Итеративный подход, сфокусирован на анализе и удовлетворении атрибутов качества, этот подход стоит выбрать на этапе проработки требований, ранний этап проектирования. Данный подход не рассматривает возможность "поздней" эволюции, документирование и концепции;
- MS подход - в основном концентрируется на формализованных "целях" проекта, когда список целей может быть как следствием атрибутов качества, так и самостоятельной сущностью. Это очень обобщенный подход, без фиксации деталей, архитектор свободен дополнить его на свое усмотрение;
- Architecture-centric design method (ACDM) - подход  более высоких уровней абстракции, чем аттрибутивный дизайн. Фокусировка на достижение бизнес требований, обобщенного описания проекта и исследовательскую работу.
- Architecture development method (ADM) - часть TOGAF, подход для построения Enterprise архитектур, с хорошо формализованным и подробным циклом работы.