Системное описание состоит из требований, архитектуры и неархитектурной части120. Требования описывают систему как «черный ящик» или снаружи, а архитектура и неархитектурная часть – как «прозрачный ящик» или внутреннее устройство системы. Системная документация состоит из списка требований, архитектурной документации и рабочей документации. Обсудим данные понятия подробнее.
Требования и потребности
Требованиями описывается то, что должна делать система. Упоминание «черного ящика» означает, что требованиями описывается внешнее поведение системы, выполнение её функции в надсистеме. В требованиях ничего не говорится о внутреннем устройстве системы, она представляется как «черный ящик». Например, требование к системе «легковой автомобиль»: максимальная скорость не менее 250 км/ч, вес не более 2 тонн, разгон до 100 км/ч за 3 сек и т. п.
Требования возникают у проектных ролей, как внешних, так и внутренних. Учитываются требования только тех ролей, интересы которых принято учитывать при создании целевой системы. Поэтому решение о том, какие роли учитывать непосредственно влияет на требования, а потом на архитектуру, и в последствии на воплощение системы. Инженер по требованиям в результате коммуникации с заинтересованными лицами самостоятельно определяет список требований, с которыми далее работает архитектор системы.
Как мы говорили выше, описание системы есть всегда, когда есть система. Соответственно требования существуют тоже всегда, если определена система или есть внешние проектные люди, которые что-то хотят от системы. Выделяя вниманием систему, это делается исходя из каких-то требований, которые можно и не осознавать. Выделив систему «легковой автомобиль», мы сразу определили главное требование – способность самостоятельно передвигаться и перевозить пассажиров. Далее работа с требованиями помогает лучше описать будущую систему. В зависимости от учитываемых проектных ролей легковой автомобиль может получиться разным. При работе с требованиями их необходимо документировать, и управлять требованиями121.
Когда речь идет о требованиях, то обязательно подразумевают, что в ответ на эти требования будет предложена функция конкретной системы. Обычно, если не уточняется система, то значит речь идет о требованиях к целевой системе. Или говорят ещё системные требования (system requirements). Если же речь идет о требованиях к надсистеме, то они называются потребностями или нужды внешних проектных ролей (stakeholder needs)122. Требования и потребности в одном проекте нельзя путать, они описывают разные системы: требования к целевой системе, а потребности – это требования к надсистеме. Например, для надсистемы «поездка» и целевой системы легковой автомобиль: потребностями будет комфортное круглогодичное передвижение из пригорода в город, а требование – проходимость, настраиваемый климат в салоне, не укачиваемость, а также могут быть требования к скорости, весу и времени разгона.
Требования к целевой системе вытекают из потребностей. В задачу инженера по требованию входит связка выявленных потребностей и требований, а в задачу архитектора – связка требований с архитектурой системы.
Архитектура системы
Системная архитектура (system architecture), как и требования – часть системного описания. Однако, в отличие от требований, архитектура описывает важнейшие инженерные решения о том, как устроена целевая система. Требования описывают систему как «черный ящик», а архитектура – как «прозрачный ящик». Все важные части целевой системы называются архитектурой системы.