Стр: 45/301
Атомарность, единичность (atomicity
88
). Требование является атомарным,
если его нельзя разбить на отдельные требования без потери завершённости и оно
описывает одну и только одну ситуацию.
Типичные проблемы с атомарностью:
•
В одном требовании, фактически, содержится несколько независимых
(например: «
кнопка “Restart” не должна отображаться при остановленном сервисе, окно “Log” должно вмещать не менее 20-ти записей о последних действиях пользователя » — здесь зачем-то в одном предложении описаны
совершенно разные элементы интерфейса в совершенно разных кон-
текстах).
•
Требование допускает разночтение в силу грамматических особенностей
языка (например: «
если пользователь подтверждает заказ и редактирует заказ или откладывает заказ, должен выдаваться запрос на оплату » —
здесь описаны три разных случая, и это требование стоит разбить на три от-
дельных во избежание путаницы). Такое нарушение атомарности часто вле-
чёт за собой возникновение противоречивости.
•
В одном требовании объединено описание нескольких независимых ситуа-
ций (например: «
когда пользователь входит в систему, ему должно отоб- ражаться приветствие; когда пользователь вошёл в систему, должно отображаться имя пользователя; когда пользователь выходит из си- стемы, должно отображаться прощание » — все эти три ситуации заслужи-
вают того, чтобы быть описанными отдельными и куда более детальными
требованиями).
Способы обнаружения проблем
Способы устранения проблем
Обдумывание, обсуждение с колле-
гами и здравый смысл: если мы счи-
таем, что некий раздел требований
перегружен и требует декомпози-
ции, скорее всего, так и есть.
Переработка и структурирование
требований: разбиение их на раз-
делы, подразделы, пункты, под-
пункты и т.д.