78 Глава 3. Рабочий поток определения требований
Хотя теоретически, конечно же, очень привлекательно отделить «что»
от «как», но на практике набор требований скорее будет смесью «что»
и «как». Отчасти изза того, что обычно проще писать и понимать опи
сание реализации, нежели абстрактное изложение проблемы. Отчасти
потому, что могут существовать ограничения на реализацию, которые
предопределяют «как» системы.
Несмотря на тот факт, что поведение системы, и особенно удовлетворе
ние конечного пользователя, закладывается в процессе выработки тре
бований, многие компании попрежнему не считают это важным. Как
было упомянуто, основная причина провалов проектов по разработке
программного обеспечения заключается в проблемах с требованиями.
3.6.1. Модель требований
Во многих компаниях до сих пор нет формальной системы представле
ния требований или модели требований. Программное обеспечение
описывается в одном или более выполненных в произвольной форме
и в разной степени полезных «документах с требованиями». Зачастую
они написаны на естественном языке, имеют произвольные форму
иразмер. Для любого документа с требованиями, в какой бы форме он
ни был представлен, ключевыми вопросами являются «насколько он
полезен мне?» и «помогает ли он мне понять, что должна делать систе
ма?» К сожалению, полезность таких произвольным образом оформ
ленных документов ограничена.
UP обладает формальным подходом к определению требований, осно
ванным на модели прецедентов. Здесь мы расширяем его моделью тре
бований, базирующейся на традиционных представлениях о функцио
нальных и нефункциональных требованиях. Это расширение прямо
соответствует более сложному подходу к выработке требований, при
меняемому в RUP. Наша метамодель требований (рис. 3.3) показыва
ет, что SRS состоит из модели прецедентов и модели требований.
Модель прецедентов обычно создается в инструменте моделирования
UML, таком как Rational Rose. Прецеденты подробно рассматривают
ся в главах 4 и 5.
Модель требований может быть создана в текстовом редакторе или
в специальном инструментальном средстве выработки требований, на
пример RequisitePro (www.ibm.com) или DOORS (www.telelogic.com).
Мы рекомендуем использовать инструменты выработки требований по
мере возможности. Как создавать правильно сформированные требо
вания, обсуждается в следующих нескольких разделах.
3.6.2. Правильно сформированные требования
UML не дает какихлибо рекомендаций по написанию традиционных
требований. Фактически требования в UML представляются исключи
тельно через механизм прецедентов, который будет рассмотрен позже.