Здравствуйте, Sinix, Вы писали:
S>Подскажите плиз, это я неправильно понимаю, или вся "большая тройка" танцует от функциональных требований?
Архитектура (программного обеспечения) – это совокупность согласованных технических решений направленная на удовлетворение требований, предъявляемых к программному обеспечению.
Т.е. архитектура — есть функция требований. Это аксиома.
Но есть второй аспект — инженерный.
Допустим, есть у нас требования создать устройство для сиденя, то есть — табуретку. Табуретка штука простая, но сделать мы ее можем разными способами. Можем: а) сколотить гвоздями, б) соединить детали в шип на клею, в) использовать современную мебельную фурнитуру для скрепления деталей.
Соответственно мы получим три табуретки с совершенно разными качествами. Первая развалится через пару дней, вторая прослужит пару лет, третья будет служить долго, а при необходимости у нее можно будет легко заменить сломаную ножку.
Так же и с софтом. Можно создать продукт, который удовлетворяет всем требованиям, но по реализации — говно. Можно создать продукт который удовлетворяет всем требованиям и безупречный с инженерной точки зрения (говорят, что можно, но я пока не видел такого
). Можно создать продукт безупречный с инженерной точки зрения и абсолютно бесполезный, потому что он не учитывает требований.