> -- Илья Ермаков писал(а):
> Юч Огбуджи.Специалист по архитектуре программных систем.Часть 1. Как разработчики становятся системными архитекторамиСпециалист по архитектуре программных систем.Часть 2. О трудностях проектирования архитектуры данных

Проблема данного человека (Юч Огбуджи) в том, что он смотрит на разработку систем, как на разработку программ. То есть,
1. Собираем сведения/требования к будущему ПО;
2. Анализируем;
3. Проектируем;
4. Реализуем;
5. Тестируем;
6. Внедряем;
7. Сопровождаем/развиваем.
И проблемы начинаются в п.1. Мы ограничиваем свое понимание, теми задачами, которые решают пользователи, их (пользователей) видением этих задач. И получаем, в результате анализа, разрозненную функциональную модель. От десятков до сотен функций кое как связанных друг с другом. Даже просто вычислить перекрытие функций, а тем более их недостаточность фактически невозможно. Это все всплывет позже, во время опытной или рабочей эксплуатации. Это наследие от проектирования больших программ.
К системам, IMHO, подход должен быть принципиально иной. Бессмысленно собирать требования, они не дадут полного представления о будущей системе (сумма частностей (требований) не равна целому (системе)). Можно было бы посоветовать оперировать классами задач, но и это не совсем то (совсем не то)... Надо понять и формально выразить суть системы. С этого и начинается построение систем.
Довольно часто я пользуюсь простым приемом, чтобы показать различие в подходах к построению программ и систем. Задается банальный в общем-то вопрос, например, что такое склад? Программисты (да и не только) начинают говорить о том, что склад - это хранилище, место куда привозят товары и откуда их забирают, место учета товара и т.д. и т.п. Все эти ответы правильные, но... частные. Они просто перечисляют те функции, которые выполняет склад. Но если говорить о семантике склада, то она в том, что существуют неравномерности материального потока. Неравномерности могут быть пространственными (объемными) и/или временными. В первом случае материалы могут приходить большими партиями, а отгружаться маленькими (или наоборот, приходить маленькими, а отгружаться большими). Во втором случае, приход товара не совпадает по времени с его отгрузкой (типичный пример - камера хранения). Часто оба вида неравномерности встречаются одновременно.
Другими словами, суть склада состоит в том, чтобы сглаживать (демпфировать) неравномерности в материальном потоке. И, исходя, из этой сути, можно проектировать склад, кладовку, портовый терминал. Функциональное наполнение может быть разным, но важно то, что его можно наращивать без изменения архитектуры системы.

Если же следовать "традиционному" подходу, то не надо быть "семи пядей во лбу", чтобы понять... следом за подходом посыпятся жалобы на то, что функций много, требования меняются, архитектура не устойчивая, проект реализуется слишком долго, ресурсов требуется очень много, а управлять этим всем... верх искусства, которое смертным недоступно. Сколько раз еще будут переписывать "Мифический человеко-месяц" Ф. Брукса...