В создании программной системы заинтересованы многие люди и организации. Эти заинтересованные лица (stakeholders) включают, среди прочих, заказчика, конечных пользователей, разработчиков, руководителя проекта, специалистов по сопровождению и маркетингу. У разных заинтересованных лиц есть свои представления о свойствах системы — в частности, они высказывают пожелания относительно поведения системы при прогоне, производительности на тех или иных аппаратных средствах, настраиваемости, быстрого выхода на рынок и низких за-
трат на разработку, высокой заработной платы программистов соответствующей специальности, широкой функциональности и т. д. На рис. 1.2 изображен архитектор, получающий от заинтересованных лиц «полезные советы».
Желательно, чтобы у системы были такие свойства,, как высокая производительность, надежность, готовность, совместимость с различными платформами, умеренное потребление памяти, возможность использования в сети, безопасность, модифицируемость, практичность, способность взаимодействия с другими системами и приемлемое поведение. Именно из этих свойств, в чем мы сможем убедиться, складывается архитектура. От них зависит, понравится ли система заинтересованным лицам — тем, для кого она предназначена.
Трудность в том, что у каждого заинтересованного лица свои представления и задачи, причем иногда они противоречат друг другу. Желаемые свойства системы, конечно, можно изложить в таком артефакте, как сводка требований. Впрочем, подобного рода документы, в которых все требования к качеству сформулированы достаточно подробно, встречаются крайне редко. Как правило, архитектору приходится заполнять бреши и улаживать противоречия.