Архитектура и архитектурные решения в основном касаются «нефункциональных» требований системы; pace RoadWarrier, но каждая из вещей, о которых он упоминает, является следствием архитектурных решений, более чем независимых сами по себе. (Доказательство: что приводит к определенному выбору в любой из этих областей? Всегда необходимо удовлетворять некоторым нефункциональным требованиям.)
Имея это в виду, это проблема из двух частей. Во-первых, вам нужно решить, какие NFR важны. желательно, указав их с определенной конкретностью, используя строгий метод, например, не просто сказать «высокодоступный», скажем, «система должна быть доступна (MTTF / (MTTF + MTTR)) 99,99 процента, при этом наибольшее время простоя составляет 4 минуты. "
Во-вторых, вам нужно подумать о том, какие представления помогут вам спроектировать, чтобы удовлетворить эти требования и обосновать свои решения . В зависимости от строгости ваших требований это может быть что угодно, от блок-схемы белой доски до формального исследования моделирования.
В домене business , скажем, в ИТ-системе, доступной через веб-интерфейс, вы можете, например, захотеть:
- надежность (MMTF)
- доступность (MTTF / (MTTF + MTTR))
- масштабируемость (система должна быть в состоянии добавить 10-процентную емкость в течение 72 часов при стоимости X)
- емкость (система должна поддерживать 1 миллион активных пользователей)
- пропускная способность (система должна обрабатывать 100 транзакций в секунду со средним значением & sigma; = 2,5 т / с)
- время отклика (при тестовой загрузке пользователь должен получить полную страницу за ≤ 2 секунд)
- безопасность (метрики здесь - тема для некоторой статьи)
Вам также следует, если вы указываете характеристики производительности и т. Д., Описать рабочую нагрузку , т. Е. Размер данных пользователя, скорость поступления веб-запросов и т. Д.